我的 rails
应用程序中有一个 sqlite3
数据库,其中有一个 development.sqlite3
文件。我想将数据库转换为 mysql
。以下是我采取的步骤,但仍然遇到问题:
1.首先,我添加并安装 gem 'seed_dump'
将数据添加到我的 seed.rb
中(通过运行 rake db:seed:dump
) 因为我确实需要迁移我的数据。
2.将database.yml
配置更改为mysql
设置。
development:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
production:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
3.运行rails db:create
,然后运行rails db:schema:load
。
4.然后通过运行rake db:seed:dump
从种子加载数据
问题是我的多对多关系数据(在数据库模式中有一个表)无法从我的seed.rb导入mysql。
我想知道的是,是否有其他安全的方法可以将我的数据从 sqlite3
迁移到 mysql
,而不是将它们写入 seed.rb
然后阅读它们?
最佳答案
当我寻找另一种方法来解决该问题时,我发现了声明的内容 here 。我按照 mysql
面临另一个错误的步骤进行操作: Data is too long for columns Summary
。为了跳过这个错误,我在database.yml
中关闭了mysql严格模式
:
config/database.yml
development:
adapter: mysql2
encoding: utf8
database: myDB
username: root
password: ****
host: localhost
strict: false
production:
adapter: mysql2
encoding: utf8
database: myDB
username: root
password: ****
host: localhost
strict: false
此解决方案比使用 gem 'seed_dump'
更清晰,后者存在 has 和属于许多
关系的问题!
关于mysql - Ruby On Rails 关于多对多关系的数据从 sqlite3 迁移到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50073498/