run remove references rails migrations generate data column ruby-on-rails schema

ruby on rails - remove - Cargue un structure.sql en una base de datos de rieles a través de rake



rollback migration rails (6)

rake db:schema:load cargará un archivo schema.rb en una base de datos de rieles. ¿Hay alguna forma de cargar un archivo structure.sql en la base de datos a través de rake o simplemente necesito hacer esto manualmente?


A veces desea cargar un archivo que no es el db/structure.sql predeterminado.

Para los carriles 4.2 y anteriores, use

DB_STRUCTURE=some_file.sql rake db:structure:load

A partir de 5 carriles de uso.

SCHEMA=some_file.sql rake db:structure:load


Haga su archivo seeds.rb como:

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

Source


Solo usa

rake db:setup

que utilizará schema.rb o structure.sql dependiendo de su configuración.


Una vez que cargues tu esquema, puedes probar:

rails dbconsole < structure.sql

O

rails db < structure.sql


Utilice rake db:structure:load , que cargará db/structure.sql .

[Actualizar]

Si desea cargar otro archivo, puede especificar su ruta a través de

  • SCHEMA entorno SCHEMA (Rails 5.0 o posterior)
  • DB_STRUCTURE entorno DB_STRUCTURE (Rails 4.x)

Por ejemplo, ejecute

rake db:structure:load SCHEMA=db/another.sql

o

rake db:structure:load DB_STRUCTURE=db/another.sql


Utilice el propio mecanismo de carga SQL de la base de datos.

Para Postgres esto debería funcionar (al menos si la base de datos existe y no necesita una contraseña):

psql -d databaseName < db/structure.sql

En Heroku, donde rake db: setup no funciona, ya que no puedes crear una base de datos así, puedes hacer esto:

heroku pg:psql < db/structure.sql