Ruby 关于 Rails 从 sqlite3 到 mysql 关于多对多关系的数据迁移
Ruby On Rails data migration from sqlite3 to mysql regarding to many to many relations
我的 rails
应用程序中有一个 sqlite3
数据库,其中有一个 development.sqlite3
文件。我想将数据库转换为 mysql
。这是我采取的步骤,但我仍然遇到问题:
1.First 我添加并安装 gem 'seed_dump'
以将数据添加到我的 seed.rb
(通过 运行 rake db:seed:dump
)因为我真的需要迁移我的数据 .
2.Change 将 database.yml
配置为 mysql
设置。
development:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
production:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
3.Run rails db:create
然后 rails db:schema:load
.
4.Then 通过 运行 rake db:seed:dump
从种子加载数据
问题是我的多对多关系数据(在数据库模式中有一个 table)无法从我的 seed.rb.[=29= 导入 mysql ]
我想知道的是,有没有其他安全的方法可以将我的数据从 sqlite3
迁移到 mysql
,而不是将它们写入 seed.rb
然后读取它们?
在寻找另一种解决问题的方法时,我发现了声明的内容 here。我按照 mysql
的另一个错误的步骤操作: Data is too long for column summary
。为了跳过这个错误,我在 database.yml
:
中像这样关闭了 mysql strict mode
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 and belongs to many
关系有问题!
我的 rails
应用程序中有一个 sqlite3
数据库,其中有一个 development.sqlite3
文件。我想将数据库转换为 mysql
。这是我采取的步骤,但我仍然遇到问题:
1.First 我添加并安装 gem 'seed_dump'
以将数据添加到我的 seed.rb
(通过 运行 rake db:seed:dump
)因为我真的需要迁移我的数据 .
2.Change 将 database.yml
配置为 mysql
设置。
development:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
production:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
3.Run rails db:create
然后 rails db:schema:load
.
4.Then 通过 运行 rake db:seed:dump
问题是我的多对多关系数据(在数据库模式中有一个 table)无法从我的 seed.rb.[=29= 导入 mysql ]
我想知道的是,有没有其他安全的方法可以将我的数据从 sqlite3
迁移到 mysql
,而不是将它们写入 seed.rb
然后读取它们?
在寻找另一种解决问题的方法时,我发现了声明的内容 here。我按照 mysql
的另一个错误的步骤操作: Data is too long for column summary
。为了跳过这个错误,我在 database.yml
:
mysql strict mode
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 and belongs to many
关系有问题!