【发布时间】:2013-07-09 05:21:36
【问题描述】:
我使用的是 rails 2.x 版本。我正在使用 mysql 5.0 数据库进行后端进程。我在执行以下步骤时遇到了迁移错误。
- 从 github 获取应用程序代码。
- 运行架构:创建、加载和种子进程
- 然后在应用程序中添加一些数据。
- 再次从同一分支拉取代码。
- 之后我运行 db:migrate 会引发以下错误
-> rake db:migrate --trace DEPRECATION WARNING: Rake tasks in vendor/plugins/acts_as_audited/tasks,供应商/插件/annotate_models/tasks, 供应商/插件/应用程序版本/任务,供应商/插件/项目符号/任务, 供应商/插件/进口商/任务,供应商/插件/mimetype-fu/任务, 供应商/插件/railsdav/tasks,供应商/插件/rav/tasks, 供应商/插件/simple_captcha/tasks,供应商/插件/smart_table/tasks, 供应商/插件/test_data_generator/tasks, 供应商/插件/visualize_models/tasks,以及 vendor/plugins/xss_terminate/tasks 已弃用。使用库/任务 反而。 (从 /usr/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/tasks/rails.rb:10)
** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environmentThu 11 Jul 2013 09:24:36 AM IST ** Execute db:migrate == ConvertOrganizationToAwesomeNestedSet: migrating ========================== Running sample patched rebuild process. rake aborted! An error has occurred, all later migrations canceled: Validation failed: Name can't be blank /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/validations.rb:1102:in
save_without_dirty!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/dirty.rb:87:insave_without_transactions! /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/transactions.rb:200:insave!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/connection_adapters/abstract/database_statements.rb:136:intransaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/transactions.rb:182:intransaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/transactions.rb:200:insave! /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/transactions.rb:208:inrollback_active_record_state!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/transactions.rb:200:insave! /opt/sample/lib/awesome_nested_set_overrides.rb:25:inrebuild!' /opt/sample/lib/awesome_nested_set_overrides.rb:22:incall' /opt/sample/lib/awesome_nested_set_overrides.rb:22:inrebuild!' /opt/ssample/lib/awesome_nested_set_overrides.rb:22:ineach' /opt/sample/lib/awesome_nested_set_overrides.rb:22:inrebuild!' /opt/sample/lib/awesome_nested_set_overrides.rb:32:incall' /opt/sample/lib/awesome_nested_set_overrides.rb:32:inrebuild!' /opt/sample/lib/awesome_nested_set_overrides.rb:29:ineach' /opt/sample/lib/awesome_nested_set_overrides.rb:29:inrebuild!' ./db/migrate//20130102220216_convert_organization_to_awesome_nested_set.rb:6:inup_without_benchmarks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:282:insend' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:282:inmigrate' /usr/lib/ruby/1.8/benchmark.rb:293:inmeasure' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:282:inmigrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:365:in__send__' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:365:inmigrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:491:inmigrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:567:incall' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:567:inddl_transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:490:inmigrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:477:ineach' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:477:inmigrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:401:inup' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.12/lib/active_record/migration.rb:383:inmigrate' /usr/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/tasks/databases.rake:112 /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:228:incall' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:228:inexecute' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:223:ineach' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:223:inexecute' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:166:ininvoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:insynchronize' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:159:ininvoke_with_call_chain' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/task.rb:152:ininvoke' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:143:ininvoke_task' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:101:intop_level' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:101:ineach' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:101:intop_level' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:110:inrun_with_threads' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:95:intop_level' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:73:inrun' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:160:instandard_exception_handling' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/lib/rake/application.rb:70:inrun' /usr/lib/ruby/gems/1.8/gems/rake-10.0.3/bin/rake:33 /usr/bin/rake:19:inload' /usr/bin/rake:19 任务:TOP => db:migrate
Organization.rebuild! - 这是调用插件的代码。
awesome_nested_set 插件似乎有一些问题。在过去的一周里,我一直在为此苦苦挣扎。任何 cmets 将不胜感激。
编辑 - 1
class ConvertOrganizationToAwesomeNestedSet < ActiveRecord::Migration
def self.up
# add_column :party, :lft, :integer
# add_column :party, :rgt, :integer
Organization.reset_column_information
Organization.rebuild!
end
def self.down
remove_column :party, :lft
remove_column :party, :rgt
end
end
模型 - 组织
class Organization < Party
attr_accessible :name,
:parent_id
default_scope :order => 'name'
acts_as_nested_set has_many :children, :class_name => 'Organization',
:foreign_key => "parent_id"
belongs_to :parent, :class_name =>'Organization', :foreign_key => "parent_id"
def display_name
name
end
【问题讨论】:
-
你能分享你的
ConvertOrganizationToAwesomeNestedSet迁移文件和Organization模型吗? -
@TalgatMedetbekov 我更新了问题..
标签: ruby-on-rails database-migration ruby-on-rails-2 rails-migrations