使用ActiveRecord而不使用rails执行迁移文件不起作用

时间:2014-07-10 19:37:30

标签: ruby-on-rails ruby sqlite activerecord

我正在尝试在不使用rails并使用sqlite数据库的本地主机应用程序中使用gem'active_record'执行迁移文件。

我有以下rake文件:

require_relative './config/environments.rb'
require 'active_record'

task :default => :migrate

desc "executing migration"
task :migrate do   
    ActiveRecord::Migrator.migrate('/db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
end

在/ db / migrate路径中我有一个名为001_create_users.rb的文件,其中包含以下代码:

require 'active_record'

class CreateUsers < ActiveRecord::Migration

    def self.up
        create_table: users do |u|
            u.string :username
            u.string :password_digest
        end
     end
end

但是当我在终端上执行rake时,没有在数据库上创建表用户,只创建了一个名为 schema_migrations 的表。

在ActiveRecord上,我得到以下记录:

D, [2014-07-10T11:42:21.520400 #2042] DEBUG -- :   [1m[36m (7.2ms)[0m  [1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
D, [2014-07-10T11:42:21.520842 #2042] DEBUG -- :   [1m[35m (0.1ms)[0m  select sqlite_version(*)
D, [2014-07-10T11:42:21.522101 #2042] DEBUG -- :   [1m[36m (1.0ms)[0m  [1mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m

为了在用户表中创建属性,我需要做些什么?

1 个答案:

答案 0 :(得分:0)

你试过standalone_migrations gem吗? (https://github.com/thuss/standalone-migrations