1

Я знаю, это, наверное, немой вопрос, но ...Rails - Смогу ли я потерять свою базу данных разработки, когда буду настаивать на производстве?

Проще говоря, у меня есть приложение с базой данных сотен записей в режиме разработки. Когда я нажимаю на производство и развертываю в Интернете, я потеряю свою базу данных и должен будет переделать все это в режиме производства?

Просто быть в безопасности!

ответ

1

Ваша производственная база данных не нажата. Пустая база данных с вашими схемами будет создана при запуске rake exec db: migrate на вашем производственном сервере.

Если вы хотите автоматизировать добавление записей базы данных разработки в свою производственную базу данных, есть жемчужина, называемая yaml_db. Он прост в использовании и работает на MySQL и PostgreSQl. https://github.com/yamldb/yaml_db.

В Gemfile:

gem 'yaml_db' 

Затем в консоли

$ bundle install 
rake db:data:dump -> Dump contents of Rails database to db/data.yml 
rake db:data:load -> Load contents of db/data.yml into the database 

Посмотрите на спецификации для всех деталей.

Редакция: Добавление

RAILS_ENV=development bundle exec rake db:data:dump 
RAILS_ENV=production bundle exec rake db:data:load 
+0

, так что бы я был хорошей идеей сначала развернуть мой сайт, а затем добавить свои записи в базу данных в базу данных? или лучше перенести разработку db на производство через жемчужину yaml_db? также, если я переведу, будет ли риск потери данных? – nvrpicurnose

+0

Да. Разверните сначала. Поднимите все, что нужно сгребать, и убедитесь, что ваше приложение успешно развернуто и запущено. Не будет никаких данных, но все должно сработать. Затем используйте жмем yaml_db для копирования файлов в файл дампа yaml. Ваша исходная база данных (разработка) не будет изменена, но если вы почувствуете себя более комфортно, сделайте резервную копию, прежде чем запускать процесс. – Elvn

+0

Думаю, я понимаю, почему вы задали вопрос выше. Это может быть тонкой точкой, но важно - вы выгружаете файл в среду разработки и загружаете файл в производственную среду. Драгоценный камень хорош, но процесс не является неосложненным. Я использовал его, потому что у меня было много таблиц разработки с данными, которые я не хотел повторно вводить в производство. – Elvn

2

Сортировка, вы не потеряете сами данные, которые хранятся в базе данных, настроенной для среды разработки, но ваша производственная среда, скорее всего, настроит другую базу данных, которая будет пустой.

Вы можете скопировать базу данных из среды разработки и настроить рельсы для использования в процессе производства. Зависит от того, какую базу данных вы используете: mysql, sqlite и т. Д.

+0

, так что я могу просто скопировать базу данных разработки, которые будут использоваться в производстве? будут ли какие-либо потери данных или проблемы с производительностью? – nvrpicurnose

+0

Да, в случае mysql вы экспортируете и повторно импортируете его. На сервере вам, вероятно, нужно немного настроить mysql.conf для оптимальной производительности. – Peterdk

 Смежные вопросы

  • Нет связанных вопросов^_^