问题标签 [dbmigrate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
22455 浏览

ruby-on-rails - 在应用它们之前,我如何知道 'rake db:migrate' 将应用哪些更改?

该命令rake db:migrate会将所有相关的新迁移应用到数据库,并将在输出中列出已应用的迁移。

我想提前知道将应用哪些迁移,以便记下生产环境中预期的更改列表。

有没有我可以结合使用的选项来rake db:migrate告诉我将应用哪些更改而不实际应用它们?

0 投票
2 回答
373 浏览

ruby-on-rails - Ruby on Rails 3 教程:第 2 章第 2.2.1 节用户导览

我是 Ruby on Rails 的新手,正在阅读这本教程书。我在 Windows Vista 上并使用 Cygwin。以下是我正在运行的软件版本:

Ruby 版本 1.9.2 (i386-cygwin) RubyGems 版本 1.8.10 Rack 版本 1.3 Rails 版本 3.1.0 JavaScript Runtime JScript Active Record 版本 3.1.0 Action Pack 版本 3.1.0 Active Resource 版本 3.1.0 Action Mailer 版本 3.1.0主动支持版本 3.1.0

在2.2节的开头,我能够成功运行:($ rails generate scaffold User name:string email:string)和($ rake db:migrate)。但是当我运行 ($ rails server) 命令并在 Chrome 中打开网页时,我并没有看到图 2.4 所示的屏幕。但改为看到这个:“Encoding::InvalidByteSequenceError in Users#index”

我看到了关于将 rake 版本从 0.9.2 切换到 0.8.7 的帖子,我尝试了这个,但它对我不起作用。现在有人可以尝试其他任何东西吗?谢谢你,尼克。

0 投票
1 回答
184 浏览

ruby-on-rails - rake db 迁移问题

关于 db 迁移任务的一些问题 (rake db:migrate)

  • 如果有拼写错误,重命名文件名是否有意义。(例如 CreaetFoos.rb 到 CreateFoos.rb)
  • 我在开发过程中错误地创建了一个迁移脚本(比如版本'3'),我希望将它从 git 中删除。如果我已经迁移到当前级别'6',我应该回滚到'2',从git中删除对应于'3'的迁移脚本并重新运行迁移脚本。在这种情况下,schema_migrations 会保存正确的数据吗?
  • 我想在开发过程中创建一个迁移脚本,但我不希望它被视为迁移脚本的一部分,除非我称之为完整(即我不希望其他开发人员使用不完整的迁移脚本被签入 git)。我该如何处理?
0 投票
1 回答
766 浏览

ruby-on-rails - heroku rake db:迁移不起作用

运行 heroku rake db:migrate 时出现此错误:

我在网上查看,发现添加了“pg”宝石。我使用 gem install pg 添加它并将其放入我的 gem 文件中。我已经完成了捆绑安装。当我尝试执行命令“sudo gem install activerecord-postgresql-adapter”时,它告诉我找不到 gem。

另外,我在我的 gemfile 中添加了“pg”,并尝试在我的本地机器上运行我的代码,但它无法运行,因为它找不到 pg。我以某种方式安装了 pg,并且我的程序在我的本地计算机上再次运行,但是在执行 heroku rake db:migrate 时它仍然给我错误

0 投票
2 回答
1352 浏览

ruby-on-rails - 无法在克隆的 github 存储库上运行“rake db:migrate”

由于我是 Rails 新手,并且从书籍中学到了非常基础的知识,我现在认为我可以通过阅读其他人的代码并尝试理解它来学到更多东西,所以我在 github 上注册并在那里设置了所有东西。现在我读到一个值得学习的好开源项目是 radiant,所以我去了https://github.com/radiant/radiant并将其克隆到本地目录。然后我进行如下:

  1. cd radiant
  2. bundle install,一切顺利
  3. rake db:migrate,它首先返回:

耙中止!您已经激活了 rake 0.9.2,但您的 Gemfile 需要 rake 0.8.7。使用 bundle exec 可以解决

所以我输入bundle exec rake db:migrate并收到以下信息:

注意: Gem.source_index 已弃用,请使用规范。它将在 2011-11-01 或之后删除。从 c:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.14/lib/rails/gem_dependency 调用的 Gem.source_index Rake 中止!没有要加载的文件——半径

所以在这里我想知道如何解决这个问题?我还注意到,当它被克隆时,一个 Gemfile 和一个 Gemfile.lock 已经存在于 radiant 文件夹中,这可能是问题的一部分?

另外我想知道我运行与编写项目相同版本的rails是否很重要?

现在应该说我目前已经安装了rails 3.0.5并在windows上运行

我希望有人可以在这里帮助我,这非常令人沮丧,因为我无法运行任何克隆的 github 存储库(这里容光焕发只是一个例子)。

0 投票
1 回答
710 浏览

ruby-on-rails - rake db:miagrate aborted 异常:rake aborted!未初始化的常量 Rake::DSL

任何人都可以帮助我吗?我搜索了同样的问题,但我仍然无法找到解决方案。我使用“bundle update”“bundle install”成功运行,但是在运行“rake db:migrate”时出现以下问题......

0 投票
3 回答
952 浏览

ruby-on-rails - 如何在迁移期间处理自动递增的主键

我编写了一个简单的 rails 迁移脚本,self.upself.dropdelete(:id => 1). 如果我执行 db:migrate 它会创建一个 id=1 的新条目,如果我回滚它会被删除。如果我在使用主键 id=2 创建记录时再次迁移/删除,并且我的删除脚本在回滚时失败,则会出现问题。

每次主键都相同是非常重要的,因为我有基于它的其他依赖项。处理这个问题的正确方法应该是什么。

0 投票
2 回答
814 浏览

postgresql - heroku rake db:迁移失败 - 如何诊断/修复?

这以前工作得很好。

如何诊断?

rake db:migrate在我的本地数据库上工作正常。日志中没有条目。VERSION=xxx 也没有帮助。

使用 rake 0.8.7。

0 投票
1 回答
2082 浏览

ruby - Rails 3 rake db:migrate 失败,'rake aborted!无法将 SQLite3::Statement 转换为 Array'

当我在尝试迁移我的数据库时遇到错误时,我正在学习 Ruby on Rails 3 教程。即使我在运行 db:migrate 之前执行了 db:drop,也会出现“无法将 SQLite3::Statement 转换为数组”错误。我尝试更新 rake 并从我的 Gemfile 中删除 rspec,但都没有为我工作。

我正在使用的宝石是:

真的很困惑这个错误

迁移文件:

使用 ruby​​ 1.9.2 而不是 1.8.7 会导致:

0 投票
1 回答
3040 浏览

dbmigrate - 为什么“rake db:migrate”和“rake db:rollback”一次不会回滚多个迁移?

我用rake db:migrateand得到了一些意想不到的行为rake db:rollback。我希望有人可以为我提供一些启示。

我通过添加一个冲突的迁移使我的迁移变得一团糟,我试图迁移回 0,以便我可以再次迁移并继续知道一切都会正常工作。

我正在运行rake db:migrate version=0,只是被转储回命令行,没有报告迁移,也没有影响我的数据库。我确实有一个 Rakefile,并且我的 database.yml 文件设置了正确的登录凭据。

到处玩,我发现我可以毫无问题地进行rake db:rollback step=1:根据迁移会发生适当的操作。但是,rake db:rollback step=2(或 step=3 或 step=5 - 1 以外的任何值)一次只能进行一次迁移。

在终端中使用 mysql 完全删除数据库。重新创建它,然后去rake db:migrate。所有的表都按应有的方式建造。我认为任何损坏的东西都是固定的。

所以我去了rake db:migrate version=0....又什么也没发生。表仍然存在于数据库中,它本应返回为空。

有没有人有任何想法?在这一点上,我的头皮上几乎划破了一个洞。

手动删除数据库并运行我的迁移后,rake db:migrate version=0 --dry-run --trace给我响应:

在这一点上,我的迁移都只是 RailsTutorial.org 的复制,这是我迄今为止一直在做的学习练习;他们都有 self.down 方法,当我一次退一步时,他们都可以工作。

唯一可能相关的是我在另一台计算机(我的 PC)上完成了该教程;我将它推送到 github 并将其克隆到我的 Mac 上,以便将本教程用作我自己工作的起点。该应用程序似乎在我的 Mac 浏览器中运行良好(与在 PC 上相同),尽管我一直在遵循无数教程来第一次在 Mac 上设置 Rails 环境 (RVM),我'已经安装了不同的宝石来做到这一点。我的问题可能源于这里吗?

感谢您的任何建议!