Fecmall-使用Mongodb ¶
Fecmall数据库发展简介 ¶
1.目前Fecmall是2版本,默认全部使用mysql
2.如果您玩过fecmall-1版本,您肯定了解,对于一版本,必须使用双数据库,对于涉及到事务操作的表,譬如cart,order表, 放到了mysql中,而非事务的表,譬如product,category,review,cms等放到了mongdob中, 好处是最大化的利用各个数据库的优势,增强并发,但是,带来了配置繁琐,对小白以及初级程序员使用不友好, 因此,fecmall对mongodb实现的services,使用mysql进行了实现,默认只需要mysql即可
3.如果您公司或者您个人有一定的开发能力,网站有一定的并发要求,那么您可以使用mongodb来替代一部分的mysql存储, 在使用前,您需要进行如下的配置
Fecmall-使用Mongodb ¶
1.安装Mongodb
2.安装php扩展 php-mongodb
, !!!!注意,不是php-mongo
,一定要看清楚
3.安装Yii2 Mongodb扩展包: https://github.com/yiisoft/yii2-mongodb
打开composer.json 添加:
"yiisoft/yii2-mongodb": "~2.1.7",
然后执行 composer update
4.Fecmall配置mongodb
打开文件:@common/config/main-local.php
'mongodb' => [
'class' => 'yii\mongodb\Connection',
# 有账户的配置
//'dsn' => 'mongodb://username:password@localhost:27017/datebase',
# 无账户的配置
'dsn' => 'mongodb://127.0.0.1:27017/fecshop_test_2017_04_19',
# 复制集
//'dsn' => 'mongodb://10.10.10.252:10001/erp,mongodb://10.10.10.252:10002/erp,mongodb://10.10.10.252:10004/erp?replicaSet=terry&readPreference=primaryPreferred',
],
配置即可。
5.mongodb数据库初始化(导入mongodb的表,数据,索引):
./yii mongodb-migrate --interactive=0 --migrationPath=@fecshop/migrations/mongodb
如果Mongodb migrate报错:PHP Compile Error 'yii\base\ErrorException' with message 'require_once(): Failed opening required 'Array/m170228_072455_fecshop_tables.php' (include_path='.:')' 可以参看这里解决:http://www.fecshop.com/topic/45
6.如果使用mongodb搜索
需要同步数据到mongodb的搜索引擎
cd vendor/fancyecommerce/fecshop/shell/search
sh fullSearchSync.sh
使用mongodb ¶
配置mongodb作为存储引擎,产品分类数据进行数据同步,可以参看:Fecshop-Service数据库配置