Rake db:migrate问题PostgreSQL

3

我在PostgreSQL和Ruby on Rails方面是一个完全的新手..

我试图按照这个教程进行操作(不使用rubymine)http://www.codeproject.com/Articles/575551/User-Authentication-in-Ruby-on-Rails#InstallingRubyMine4

我需要执行以下代码以迁移数据库(001_create_user_model.rb):

class CreateUserModel < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.column :username, :string
      t.column :email, :string
      t.column :password_hash, :string
      t.column :password_salt, :string
    end
  end

  def self.down
    drop_table :users
  end
end

我得到的错误信息如下:

syntax error, unexpected ':', expecting ';' or '\n'
        t.column...sers do |t|

...
C:131071:in 'disable_dll_transaction'
Task:TOP => db:migrate

那是一些非常老的语法……看起来不像是一个好的教程。 - sevenseacat
嗯,我也尝试了下面的语法。没有用,还是同样的错误。 - Ahmad Bilal
1个回答

1
这个是什么意思:
class CreateUserModel < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.string :username, :null => false
      t.string :email,:null => false
      t.string :password_hash, :null => false
      t.string :password_salt, :null => false
      t.timestamps
    end
  end

  def self.down
    drop_table :users
  end
end

除了文本上的差异之外?我只是随意挑选了一个迁移并将其转换为该格式。不确定Ahmad的迁移是否来自Rails的旧版本。 - Benjamin Tan Wei Hao
他的代码根据ActiveRecord::Migration文档仍然有效。你的回答应该是“你也可以将列类型作为方法调用,而不是调用列方法。”但从代码视图来看,这并没有解决问题。 - hawk
值得一试,顺便说一句。此外,我们没有太多线索。 :) - Benjamin Tan Wei Hao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接