我决定在ruby中创建我的第一个宝石,但我遇到了问题。如果用户将我的gem添加到他们的gem文件中,我想在数据库中创建一个新表。
我认为唯一的解决方案是创建一个rake任务,该任务通过迁移运行自定义脚本。我对吗?你知道有关使用普通Ruby修改数据库的任何教程吗?如何创建此脚本?还有其他解决方案吗?
答案 0 :(得分:6)
您可以尝试这样的事情:
ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: 'database.db'
ActiveRecord::Schema.define do
unless ActiveRecord::Base.connection.tables.include? 'tags'
create_table :tags do |table|
table.column :tag, :string
end
end
end
当然,我在这里提供了数据库的直接属性,因为这对我来说只是一个小脚本。例如,您可以从YAML或ENV变量中获取它。