我有一个rails模型List。
我在终端中输入了rails d model list,结果如下:
invoke active_record
remove db/migrate/20140116161958_create__lists.rb
remove app/models/list.rb
invoke rspec
remove spec/models/list_spec.rb
然后我输入了rails g model list name:string size:integer,它给了我这个:
invoke active_record
我有一个带有Rails 7.0.0的应用程序,我注意到了db:migrate的一些行为,我认为这在以前的版本中并没有发生。
每当从另一个分支将迁移添加到主服务器,并且主服务器中已经存在较新的迁移时,当我运行db:migrate时,会在运行新添加的迁移之前恢复较新的迁移。例如,如果我在rails db:migrate:status中有这些输出
down 20220325080850 Add new fields
up 20220330064816 Create new table
当运行rails db:migrate时,它只会还原“创建新表”。当再次运行时,它将同时
在某些迁移中,我试图以以下方式使用辅助数据库连接:
# app/models/staging/migration.rb
class Staging::Migration < ActiveRecord::Migration
def self.connection
ActiveRecord::Base.establish_connection(:staging_db).connection
end
end
# db/migrate/<timestamp>_create_foo.rb
class CreateFoo < Staging::Mi
当它挂起时,我正在运行一个小的迁移到测试数据库(在本地数据库上已经运行得很好)。我终止了进程,并试图重新运行,我一直得到错误:
Cannot run migrations because another migration process is currently running.
因此,我试图通过运行rails db:reset RAILS_ENV=test来重置数据库,但是这再次保持运行,并且没有给出响应。绝望地,我尝试删除和重建数据库,通过第一次rails db:drop RAILS_ENV=test,它再次永远运行,没有给出任何响应。
如何使迁移再次正常运行?
我使用postgres在rails上本地运行应用程序。一切都很好。我是rails的新手,我想在heroku上部署我的第二个应用程序,这是我的指南:当我创建新的应用程序时,我看到它在工作,然后我推送我的应用程序,并且无法运行heroku run rake db: my -app "MY new app NAME",因为有很多错误。其中一些:
弃用警告:供应商/插件中有Rails2.3样式的插件!
rake中止!发生错误,此迁移和所有后续迁移已取消: PG:: error : ERROR:关系"orders“的"confirmed”列已存在
当我尝试启动我的应用程序
如果我用rails generate migration创建了一个表,我可以稍后通过创建一个新的迁移向其中添加一个额外的列。我还可以回滚原始迁移,然后编辑它以包含额外的列。
方法1:新迁移
//Create the model including the migration
$ rails generate model Foo bar:string
//Perform the migration
$ rake db:migrate
//Create the add column migration
$ rails generate migration add_foobar_to_foos
我愿意为我的应用程序创建一个新的模型,即一个新的表。我已经有了一个用于我的应用程序的表,我想创建一个新的表。但是,在执行以下创建新表的命令后,运行rake db:migrate命令时会遇到问题。
rails g model information age:string name:string
在运行rake db:migrate命令时,系统将显示以下错误消息:
不知道如何构建任务db:迁移
最终没有创建任何表。我使用的是Postgresql。
生成迁移的方式是:
class CreateInformation < ActiveRecord::Migration
def change
在Rails 3.2.13应用程序中,我使用query_reviewer gem来提高我的数据库性能。
生成SQL的代码是:
@seo_keywords = SeoKeyword.order("category, keyword")
它生成以下SQL警告:
MSG: No index was used here. In this case, that meant scanning 64 rows.
SQL: SELECT SQL_NO_CACHE `seo_keywords`.* FROM `seo_keywords` ORDER BY category, keyword
因此
我正在使用Rails 4,我创建了一个db迁移。名为AddPlaceidToUserid
class AddPlaceidToUserid < ActiveRecord::Migration
def change
create_table :subscriptions do |t|
t.integer :placeid
t.integer :userid
end
end
end
在使用rake db:migrate迁移之后,它会在我的数据库中创建一个表,但是在rails控制台中,当我显示所有表时,它会显示["schema_migra