在生活环境下无法执行 rails db:seed。
rails db:seed
不倾向于用 sql。
万能的 shell. 导出,压缩,上传,解压,导入。
... declare -a arr=( "table1" "table2" ) ... for i in "${arr[@]}" do ... mysqldump -uroot -ppassword database $i > $LOCALDIR/$i.sql tar czf $LOCALDIR/$i.sql.tar.gz -C $LOCALDIR $i.sql scp -r -P $PORT ${LOCALDIR%/}/$i.sql.tar.gz root@$SERVER:$SERVERDIR/$i.sql.tar.gz ssh -p $PORT root@$SERVER "tar xzf $SERVERDIR/$i.sql.tar.gz -C $SERVERDIR && rm $SERVERDIR/$i.sql.tar.gz" ssh -p $PORT root@$SERVER "mysql -u$DATABASE -p$PASSWORD ${DATABASE} < $SERVERDIR/$i.sql" ... done ...
当然我的 script 不是这么写的,而是每一步一个循环,上面的代码只是参考
@Peter 其实本质上还是 dump sql 咯。
能够按照业务逻辑写代码最好。不行的话,我这边就需要现在 dev 环境写 seeds,执行后 dump 到生成环境咯。
顺便问下 postgresql 怎么只导入数据,试过它的 dump 似乎导入很多不必要的数据,比如数据库角色什么的
下面的不行?
RAILS_ENV=production bundle exec rails db:seed
#2 楼 @u1370743666 场景不一样,我的是老数据,相当大,用 seed 太麻烦。
如果你只是小数据,还放源码一起的,可以试一下 #3 楼 @hz_qiuyuanxin 的命令。