
Создание резервной копии базы данных разработки
Что вы делаете, когда создаете новое приложение Rails и понимаете, что хотите сбросить свою базу данных, но не хотите потерять существующую тестовую информацию?
Возможно, например, вы хотите добавить связанную таблицу базы данных, которая belongs_to существующую таблицу, и вам нужно переместить некоторые столбцы из исходной таблицы в новую таблицу. Как вы собираете все данные из исходной таблицы, чтобы вы могли манипулировать ими для формирования новой таблицы?
В качестве альтернативы, что, если вы хотите, чтобы другие могли использовать вашу базу данных в качестве отправной точки при первой загрузке вашего приложения с Github. Как бы вы могли дать им начальную базу данных только с кодом для предварительного заполнения их собственной базы данных Postgres при загрузке вашего приложения?
Свалка семян в помощь
Гем Ruby Seed Dump - это способ задним числом создать файл семян из существующей базы данных. Вы можете сделать это, если ранее вы заполняли свою базу данных вручную либо в Rails Console, либо в такой программе, как Postico, и вам по какой-либо причине необходимо выполнить сброс базы данных.
В классе мы использовали Seed Dump Gem, чтобы получить исходную информацию о базе данных из наших примеров приложений интернет-магазина. Мы только изучали связанные таблицы, и наша задача заключалась в том, чтобы вытащить изображения из нашей таблицы «Товары», чтобы создать отдельную таблицу «Изображения», что позволило бы каждому продукту иметь более одного изображения.
Однако мы создали наши исходные базы данных с помощью нашей Rails Console, поэтому было бы очень сложно попытаться манипулировать всей этой информацией в нашей консоли или даже в Postico. Введите драгоценный камень свалки семян на помощь !!
Что такое Seed Dump и как его использовать?
Жемчужина исходного дампа работает, беря вашу существующую базу данных и записывая код, который будет генерировать эти данные, и вставляя его в исходный файл Rails. Это один из способов резервного копирования исходной базы данных при разработке приложения. Обратите внимание, что это обычно используется только для начальных тестовых данных, а не для фактических данных от пользователей.
Чтобы выполнить дамп семени, добавьте гем дамп семени в свой файл гема, используя код:
gem ‘seed_dump’
Чтобы сохранить все таблицы в текущей базе данных в файле семян, выполните в терминале следующую команду:
rake db:seed:dump
Это заполнит ваш db/seed.rb файл всем кодом, необходимым для воссоздания ваших данных.
Когда использовать отвал семян
Причины для выполнения сброса семян могут включать:
- позволяя другим тестировать ваше приложение, используя ту же исходную базу данных, которую вы использовали
- создание резервной копии существующих данных, которыми вы можете манипулировать в случае, если вам нужно внести серьезные изменения в базу данных (которые затем вам нужно будет соответствующим образом обновить исходный файл, а затем выполнить db: reset)
- наличие исходных данных, доступных при отладке приложения
В нашем практическом упражнении мы использовали Seed Dump для заполнения нашего файла Seeds (который на тот момент мы еще не научились использовать!). Затем мы смогли предварительно заполнить нашу новую таблицу изображений, используя данные, которые уже существовали в исходном столбце «Изображение» в нашей таблице продуктов, в дополнение к добавлению дополнительных изображений для каждого продукта.
Посетите страницу Github с исходным дампом для получения дополнительной информации, включая дополнительные возможности этого гема: https://github.com/rroblak/seed_dump.