如何通过在Ruby Rails平台上运行sql脚本来种子mysql数据库?

Mad*_*hik 2 ruby mysql database ruby-on-rails

我基本上是Ruby程序员和Ruby Rails的初学者.在java中,要运行种子数据库ant任务,ant任务执行SQL脚本.SQL脚本基本上是一组insert语句.

我希望在Ruby Rails平台上运行sql脚本必须有一些相当于ant的任务?

编辑回应尼基塔的回答:

虽然可以使用迁移作为播种数据的方式之一.但是我不想重写编写与sql脚本相对应的迁移类.所以我需要一些解决方案,我必须只执行sql脚本文件.我想只通过SQL代码管理数据库.

小智 5

我个人不喜欢使用迁移来播种大量的"静态"数据.您可以通过以下方式轻松执行sql语句db/seeds.rb:

# Empty the soon-to-be-seeded table
MyModel.delete_all

# Get the current DB connection
connection = ActiveRecord::Base.connection();

# Execute a sql statement
connection.execute("Insert INTO my_models (id, name) VALUES
    (1, 'Example 1'),
    (2, 'Example 2'),
    (3, 'Example 3');")
Run Code Online (Sandbox Code Playgroud)

基本上,一旦你有了当前的连接,你就可以调用一个sql语句使用connection.execute("SQL CODE HERE").