Ruby on rails Rails本地安装Rails应用程序rake db:migrate返回

Ruby on rails Rails本地安装Rails应用程序rake db:migrate返回,ruby-on-rails,rake,localhost,dbmigrate,Ruby On Rails,Rake,Localhost,Dbmigrate,我有一个私人Rails应用程序,我正试图在本地安装。它目前正在宿主环境中运行,但我想在本地安装它,开始进行更改。我已经知道我可以对“live”服务器进行部署更新,但最近的一个错误“加强了在本地进行更改的需要” 经过大量的阅读,我决定我需要 获取最新的存储库(它使用SVN) 抓取数据库mysqldump-u root--databases my_db_development>my_db_development_0110.sql 本地导入数据库(MAMP/Sequel Pro注意到数据库中没有数据,

我有一个私人Rails应用程序,我正试图在本地安装。它目前正在宿主环境中运行,但我想在本地安装它,开始进行更改。我已经知道我可以对“live”服务器进行部署更新,但最近的一个错误“加强了在本地进行更改的需要”

经过大量的阅读,我决定我需要

  • 获取最新的存储库(它使用SVN)
  • 抓取数据库mysqldump-u root--databases my_db_development>my_db_development_0110.sql
  • 本地导入数据库(MAMP/Sequel Pro注意到数据库中没有数据,尽管live server中有数据-这奇怪吗?
  • Validate database.yml(适配器:mysql,编码:utf8,数据库:my_db_development,用户名:root,密码:,主机:localhost)
  • 我假设的下一步是进入我的本地目录并rake db:migrate--trace,它返回下面的输出

    我有点不确定如何去理解和确定为什么我无法前进。关于我是否错过了什么或者可能需要改变什么,有什么想法吗

    (in /Users/me/my_repo)
    ** Invoke db:migrate (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    ** Execute db:migrate
    rake aborted!
    Multiple migrations have the version number 1
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:472:in `migrations'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/connection_adapters/mysql_adapter.rb:15:in `inject'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:465:in `each'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:465:in `inject'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:465:in `migrations'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:431:in `migrate'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:373:in `up'
    /Users/me/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/migration.rb:356:in `migrate'
    /Users/me/.gem/ruby/1.8/gems/rails-2.1.2/lib/tasks/databases.rake:99
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
    /Library/Ruby/Gems/1.8/gems/rake-0.8.7/bin/rake:31
    /usr/bin/rake:19:in `load'
    /usr/bin/rake:19
    

    您的迁移目录中似乎有重复的迁移。检查数据库_migrations/migrate下迁移的前缀,确保没有复制多个版本或创建与存储库不同步的迁移

    如果要从生产环境导入整个数据库,则不需要运行db:migrate-数据库/架构应该已经是最新的。听起来您的本地数据库中缺少数据,导入出现问题。

    db/migrate显示了10次迁移,其中两次迁移的前缀为001(001_completed和001_create_tokens),这是否被视为重复?重要的是数字,而不是文件名的后缀名,因此rails认为存在重复。它必须是顺序的,否则迁移脚本无法确定首先运行哪个迁移。好的,这是有意义的。那么,重命名其中一个文件就这么简单吗?是的,很有可能。如果升级到2.1或更高版本,Rails将使用时间戳而不是序列号,这样的冲突几乎不可能发生。Dave/Ken-感谢您的帮助。昨晚我做了一些关于迁移的研究,对生成器以及前缀是如何创建的有了更好的了解。虽然我还没有对db/migrate文件做任何更改,但今天早上我无法在本地启动MySQL。在删除我通过Sequel Pro创建的数据库并卸载MAMP后,我导入了相同的数据库并重新安装了MAMP。然后我转到我的应用程序目录,输入“ruby脚本/服务器”。我不明白为什么,但“突然”该应用程序在localhost:3000上可见。谢谢你的帮助…学到了很多东西!