在 gem 中创建迁移
Create migration in gem
我决定在 ruby 中创建我的第一个 gem,但我遇到了问题。如果用户将我的 gem 添加到他们的 gem 文件,我想在数据库中创建一个新的 table。
我认为唯一的解决方案是创建一个 rake 任务,该任务在迁移时运行自定义脚本。我对吗?你知道任何关于使用普通 Ruby 修改数据库的教程吗?如何创建此脚本?还有其他解决办法吗?
您可以尝试这样的操作:
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 变量中获取它。
我决定在 ruby 中创建我的第一个 gem,但我遇到了问题。如果用户将我的 gem 添加到他们的 gem 文件,我想在数据库中创建一个新的 table。
我认为唯一的解决方案是创建一个 rake 任务,该任务在迁移时运行自定义脚本。我对吗?你知道任何关于使用普通 Ruby 修改数据库的教程吗?如何创建此脚本?还有其他解决办法吗?
您可以尝试这样的操作:
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 变量中获取它。