ruby on rails - seeds - Ejecutar script sql dentro de seed.rb en rails3
run specific seed rails (3)
Intente esto en db / seeds.rb para ejecutar SQL sin formato con rake db: seed
connection = ActiveRecord::Base.connection()
connection.execute("*_YOUR_SQL_HERE_*")
Quiero ejecutar este script sql dentro de mi seed.rb
LOAD DATA LOCAL INFILE ''/home/list-38.csv''
INTO TABLE list
FIELDS TERMINATED BY '':''
LINES TERMINATED BY ''/n''
(email,name,password);
Revisé este enlace pero no pude encontrar la solución. Así que una vez ejecutamos rake db: seed
¿Cómo sembrar la base de datos mysql ejecutando scripts SQL en la plataforma Ruby Rails? Vuelca mis datos en la tabla.
cualquier consulta .. do responder
Gracias
Para varias sentencias de SQL, terminé iterando sobre cada sentencia por separado:
# db/seeds.rb
connection = ActiveRecord::Base.connection()
sql = <<-EOL
INSERT INTO users values (''Admin'');
INSERT INTO categories values (''Supervisors'');
EOL
sql.split('';'').each do |s|
connection.execute(s.strip) unless s.strip.empty?
end
Una variación de la respuesta de Fredrik Boström que se puede cargar desde un archivo:
# db/seeds.rb
def execute_sql_file(path, connection = ActiveRecord::Base.connection)
require ''active_support/core_ext/object/blank.rb''
IO.read(path).split('';'').reject(&:blank?).each do |statement|
connection.execute(statement)
end
end
execute_sql_file(''my.sql'')