Подтвердить что ты не робот

Загрузите struct.sql в базу данных рельсов через rake

rake db:schema:load загрузит файл schema.rb в базу данных рельсов. Есть ли способ загрузить файл structure.sql в базу данных через rake или мне просто нужно сделать это вручную?

4b9b3361

Ответ 1

Используйте rake db:structure:load, который загрузит db/structure.sql.

Ответ 2

Просто используйте

rake db:setup

который будет использовать либо schema.rb, либо structure.sql в зависимости от вашей конфигурации.

Ответ 3

Использовать собственный механизм загрузки SQL базы данных.

Для Postgres это должно работать (по крайней мере, если база данных существует и вам не нужен пароль):

psql -d databaseName < db/structure.sql

На Heroku, где rake db: настройка не работает, поскольку вы не можете создать такую ​​базу данных, что вы можете это сделать:

heroku pg:psql < db/structure.sql

Ответ 4

После загрузки вашей схемы вы можете попробовать:

rails dbconsole < structure.sql

ИЛИ

rails db < structure.sql

Ответ 5

Сделайте свой файл seeds.rb следующим:

unless Rails.env.production?
  connection = ActiveRecord::Base.connection

  sql = File.read('db/structure.sql')
  statements = sql.split(/;$/)
  statements.pop  # the last empty statement

  ActiveRecord::Base.transaction do
    statements.each do |statement|
      connection.execute(statement)
    end
  end
end

Источник.

Ответ 6

Иногда вы хотите загрузить файл, который не является значением по умолчанию db/structure.sql.

Для рельсов 4.2 и более ранних версий используйте

DB_STRUCTURE=some_file.sql rake db:structure:load

В качестве рельсов 5 используйте

SCHEMA=some_file.sql rake db:structure:load