#ruby-on-rails #postgresql
#ruby-on-rails #postgresql
Вопрос:
У меня есть дамп базы данных с именем dump.sql из производственной базы данных, и когда я пытаюсь импортировать его в свою локальную базу данных разработки, я получаю сообщение об ошибке
ERROR: role "petdoctors_prod" does not exist
connect: FATAL: database "petdoctors_prod" does not exist
Похоже, что имя производственной базы данных — petdoctors_prod
а моя локальная база данных разработки называется petdoctors_development
. Можно ли импортировать prod DB в dev?
Каков наилучший способ выгрузки базы данных из prod?
Ответ №1:
Следующие шаги должны помочь в импорте dump.sql
на ваш локальный компьютер:
- Запустите
rake db:drop
с вашего локального компьютера, чтобы удалить существующую базу данных - Выполнить
rake db:create
. Это создаст базу данных, указанную в вашемdatabase.yml
файле, в соответствии со средой. В этом случае это создало бы базу данных под названиемpetdoctors_development
- Импортируйте дамп в
petdoctors_development
. Этот синтаксис этого шага будет варьироваться в зависимости от используемой вами базы данных. Например, для импорта дампа в PostgreSQL мы используемpsql <db_name> < <Path to dump file>
- Запустите
rake db:migrate
, чтобы выполнить все миграции в вашем приложении
После публикации этого приложение будет запущено в процессе разработки с теми же данными, что и в дампе, взятом из рабочей среды.
Комментарии:
1. Это то, что я сделал, как упоминалось в моем вопросе.
psql -U postgres petdoctors_development < ../dump.sql
выдает указанную выше ошибку.2. Вы уверены, что база данных была создана с использованием
rake db:create
? Что происходит при вводеpsql petdoctors_development
в терминале?3. Да, я только что сделал это снова. Когда я это делаю
psql petdoctors_development
, я регистрируюсь в базе данных psql petdoctors_development4.
psql petdoctors_development < ../dump.sql
Работает? Обычно выполнение команды с упоминанием пользователя приводит к ошибке и на моем компьютере, посколькуpostgres
пользователь по умолчанию не имеет разрешений на доступ к базам данных моего приложения Rails.