关于多对多关系的rubyonrails从sqlite3到mysql的数据迁移

rqdpfwrv  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(211)

我有一个 sqlite3 我的数据库 rails 具有 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 问题是我的多对多关系数据(在db schema中有一个表)无法从myseed.rb导入mysql。
我想知道的是,有没有其他安全的方法来迁移我的数据 sqlite3mysql 而不是把它们写进 seed.rb 然后读它们?

mrphzbgm

mrphzbgm1#

当我在寻找另一种解决问题的方法时,我找到了这里声明的内容。我沿着台阶走,又遇到了一个错误 mysql : Data is too long for column summary . 为了跳过这个错误,我关闭了 mysql strict mode 像这样 database.yml :
配置/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 关系!

相关问题