Выполните SQL-скрипт внутри seed.РБ в рельсах 3
Я хочу выполнить этот sql-скрипт внутри моего семени.rb
LOAD DATA LOCAL INFILE '/home/list-38.csv'
INTO TABLE list
FIELDS TERMINATED BY ':'
LINES TERMINATED BY 'n'
(email,name,password);
Я проверил эту ссылку, но не смог выяснить solution.So что как только мы запустим грабли db: seed
Любые запросы ..отвечайте
Thanx
3 ответа:
Попробуйте сделать это в db/seeds.rb для выполнения raw SQL с помощью rake db: seed
connection = ActiveRecord::Base.connection() connection.execute("*_YOUR_SQL_HERE_*")
Для нескольких операторов sql я закончил перебором каждого оператора отдельно:
# 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
Вариант ответа Фредрика Бострема, который можно загрузить из файла:
# 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')