Миграция данных Ruby On Rails из sqlite3 в mysql в отношении многих ко многим - PullRequest
0 голосов
/ 28 апреля 2018

В моем приложении 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.Run rails db:create, затем rails db:schema:load.

4. Затем загрузите данные из семян, запустив rake db:seed:dump

Проблема в том, что мои данные отношения ко многим (у которых есть таблица в схеме БД) не могут быть импортированы в mysql из моего seed.rb.

Я хочу знать, есть ли другой безопасный способ перенести мои данные из sqlite3 в mysql вместо записи их в seed.rb и затем прочитать их?

1 Ответ

0 голосов
/ 29 апреля 2018

Когда я искал другой способ решения проблемы, я нашел то, что объявлено здесь . Я следовал за шагами, стоящими перед другой ошибкой 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!

...