在gem中创建迁移

时间:2015-03-30 12:25:29

标签: ruby gem migration

我决定在ruby中创建我的第一个宝石,但我遇到了问题。如果用户将我的gem添加到他们的gem文件中,我想在数据库中创建一个新表。

我认为唯一的解决方案是创建一个rake任务,该任务通过迁移运行自定义脚本。我对吗?你知道有关使用普通Ruby修改数据库的任何教程吗?如何创建此脚本?还有其他解决方案吗?

1 个答案:

答案 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变量中获取它。