#ruby-on-rails #postgresql #has-and-belongs-to-many #seed
#ruby-on-rails #postgresql #имеет-и-принадлежит-многим #начальное значение
Вопрос:
Я повторно заполняю довольно большую базу данных обновленными статическими данными и обновленными значениями, с которыми взаимодействуют пользователи. Однако я заметил, что повторное заполнение базы данных очищает все таблицы соединений для таблиц Has_and_belongs_to_many (все остальные пользовательские данные и таблицы остаются неизменными).
Кто-нибудь разработал способ обойти это, когда данные будут сохранены при повторном заполнении?
Я использую Rails и Postgresql
Комментарии:
1. Если вы вставляете новые данные как часть вашего повторного заполнения, вам также придется создавать эти ассоциации. Любые ассоциации, оставшиеся до заполнения, концептуально подозрительны: неполные, неправильные и т. Д. Кроме того, когда вы говорите о повторном
rake db:drop db:create db:migrate db:seed
заполнении, о чем вы говорите? или какая-то ручная загрузка БД?2. @jaydel Я на самом деле не удаляю таблицы. Я просто записываю данные с
rake db:seed
помощью . И мой начальный файл для каждой таблицы выглядит так: НАПРИМЕР:Industry.destroy_all
,ActiveRecord::Base.connection.execute("TRUNCATE TABLE industries RESTART IDENTITY")
.Industry.create(name: 'Accounting')
etc
Ответ №1:
Как упоминалось выше, вам нужно будет воссоздать ассоциации. Вы можете сделать это довольно просто в своем начальном файле.
Вы также можете заглянуть в начальный дамп gem. Это позволит вам сделать снимок ваших отношений HABTM, а затем экспортировать их в ваш db/seeds.rb
(или любой другой) файл.