我正在使用非Rails Web应用程序,因此默认情况下没有迁移脚本。
Sequel ORM使我可以在脚本中轻松创建表:
#!/usr/bin/env ruby require 'rubygems' require 'sequel' ## Connect to the database DB = Sequel.sqlite('./ex1.db') unless DB.table_exists? :posts DB.create_table :posts do primary_key :id varchar :title text :body end end
有没有办法在迁移之外使用ActiveRecord做到这一点?
我目前的理解是,所有修改数据或架构都必须通过迁移来完成。我在github上有一个完整的rakefile,可用于在Rails之外执行迁移。
或者,如果只是初始化脚本,则可以使用以下内容。
ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :database => './lesson1_AR.db' ) ActiveRecord::Migration.class_eval do create_table :posts do |t| t.string :title t.text :body end create_table :people do |t| t.string :first_name t.string :last_name t.string :short_name end create_table :tags do |t| t.string :tags end end