【问题标题】:Rails 4 app ActiveRecord::MigrationProxy Devise 3 migration errorRails 4 应用 ActiveRecord::MigrationProxy Devise 3 迁移错误
【发布时间】:2014-03-11 12:59:06
【问题描述】:

我正在使用 ssh 和运行时在 vps 上部署我的 rails 4 应用程序

bundle exec rake db:migrate RAILS_ENV=production

这是我得到的:

[root@georgigeorgiev public_html]# bundle exec rake db:migrate RAILS_ENV=production
-- t()
-- t()
rake aborted!
ActiveRecord::MigrationProxy#disable_ddl_transaction delegated to migration.disable_ddl_transaction, but migration is nil: #<struct ActiveRecord::MigrationProxy name="DeviseCreateUsers", version=20140217200926, filename="/home/bboyratings/public_html/db/migrate/20140217200926_devise_create_users.rb", scope="">
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:712:in `rescue in disable_ddl_transaction'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:708:in `disable_ddl_transaction'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:1012:in `use_transaction?'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:922:in `rescue in block in migrate'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:919:in `block in migrate'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/bin/ruby_executable_hooks:15:in `eval'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails4/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

也是我的设计迁移文件:

class DeviseCreateUsers < ActiveRecord::Migration
   t.has_attached_file :avatar  
def change
    create_table(:users) do |t|
      ## Database authenticatable
      t.string :email,              :null => false, :default => ""
      t.string :encrypted_password, :null => false, :default => ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      t.integer  :sign_in_count, :default => 0
      t.datetime :current_sign_in_at
      t.datetime :last_sign_in_at
      t.string   :current_sign_in_ip
      t.string   :last_sign_in_ip

      ## Confirmable
      # t.string   :confirmation_token
      # t.datetime :confirmed_at
      # t.datetime :confirmation_sent_at
      # t.string   :unconfirmed_email # Only if using reconfirmable

      ## Lockable
      # t.integer  :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
      # t.string   :unlock_token # Only if unlock strategy is :email or :both
      # t.datetime :locked_at

      ## Token authenticatable
      # t.string :authentication_token


      t.timestamps
    end

    add_index :users, :email,                :unique => true
    add_index :users, :reset_password_token, :unique => true
    # add_index :users, :confirmation_token,   :unique => true
    # add_index :users, :unlock_token,         :unique => true
    # add_index :users, :authentication_token, :unique => true
  end
end

谢谢!

【问题讨论】:

    标签: ruby-on-rails migrate


    【解决方案1】:

    删除

    t.has_attached_file :avatar
    

    来自迁移。

    如果您使用Paperclip 进行图像上传(用于字段avatar),则在迁移中添加以下行:

    class DeviseCreateUsers < ActiveRecord::Migration
      def change
        create_table(:users) do |t|
          ...
          t.attachment :avatar
          ...
        end
        ...
      end
    end
    

    之后执行bundle exec rake db:migrate RAILS_ENV=production

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-22
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多