Ruby on rails Rails本地安装Rails应用程序rake db:migrate返回
我有一个私人Rails应用程序,我正试图在本地安装。它目前正在宿主环境中运行,但我想在本地安装它,开始进行更改。我已经知道我可以对“live”服务器进行部署更新,但最近的一个错误“加强了在本地进行更改的需要” 经过大量的阅读,我决定我需要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注意到数据库中没有数据,
(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上可见。谢谢你的帮助…学到了很多东西!