gpt4 book ai didi

mysql - 来自 TSV 文件的 Seed Rails 数据库 (MySQL)

转载 作者:搜寻专家 更新时间:2023-10-30 23:01:37 24 4
gpt4 key购买 nike

在开发我的 Rails 应用程序时,我一直在用示例数据手动播种它的数据库。然而,在我运行 rake db:migrate:reset 之后,我需要重新播种一切,这很乏味。

如何让 rake 为我的数据库播种?

本次迁移生成相关模型:

class CreateKeyRecords < ActiveRecord::Migration
def change
create_table :key_records, :id => false do |t|
t.string :name
t.integer :parentID, :limit => 8
t.primary_key :ID
t.integer :accesses, :limit => 8
t.integer :dt
t.integer :hour
end
change_column :key_records, :ID, 'bigint'
end
end

目前,我通过直接更改 mysql 中的应用程序数据库来为数据库播种,使用以下命令:

LOAD DATA LOCAL INFILE '/tmp/input.tsv' INTO TABLE key_records (name, parentID, ID, accesses) SET dt=20141231, hour=23;

其中 input.tsv 的形式为:

key   1    2    9493878

我怎样才能让佣金为我做这个“手动播种”?

最佳答案

我不认为有一种“rails-ey”方法可以做到这一点,但您应该能够在 seeds.rb 中运行 SQL 语句。您可以使用 ActiveRecord::Base.connection.execute 针对您的数据库运行原始 SQL 语句。您的种子文件看起来像这样:

stmt = "LOAD DATA LOCAL INFILE '/tmp/input.tsv' 
INTO TABLE key_records (name, parentID, ID, accesses)
SET dt=20141231, hour=23;"

ActiveRecord::Base.connection.execute stmt

然后您可以使用 rake db:seed 调用它。

关于mysql - 来自 TSV 文件的 Seed Rails 数据库 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com