相关疑难解决方法(0)

rails db:migrate vs rake db:migrate

我是铁杆新手.我注意到在rails 5中生成数据迁移时,有些人会使用rails db:migraterake db:migrate.有人可以解释数据库迁移中rails vs rake命令之间的区别吗?是否意味着rake命令在rails 5中已经过时了?

非常感谢

rake ruby-on-rails ruby-on-rails-5

69
推荐指数
1
解决办法
1万
查看次数

44
推荐指数
3
解决办法
2万
查看次数

rake db:rollback不工作?

我正在编写我的第一个Rails应用程序.我已经运行了几rails generate model ...rake db:migrate命令,但现在我想改变我的数据模型,因此需要撤销了一些迁移.

文档说我可以撤消与迁移rake db:rollback,但是这是行不通的.当我在控制台中运行它时,计算机会想几秒钟,但不会对db/migrate/或进行任何更改db/migrate/schema.rb.没有输出打印到控制台.

这种行为是否正确?不db:rollback应该改变我的架构?如果是这样,有谁能想到为什么它可能不起作用?

我在Rails v.3.2.6上.

编辑

此刻rake db:migrate:status给出了

database: db/development.sqlite3

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20120617191211  Create irs
   up     20120701154357  Create paths
   up     20120701154421  Create nodes
   up     20120702151447  ********** NO FILE **********
  down    20120702155140  Create venues
  down    20120703233833  Remove path from venues
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

42
推荐指数
3
解决办法
1万
查看次数

如何在不删除所有较新的迁移的情况下再次运行迁移?

我刚刚安装了设备,所以除了一个用户(我)之外,表上没有任何数据.

我再次重新做数据库所以我放弃了所有.我做rails g scaffold了6个新的模型和控制器,并做了rake db:migrate

在我的/db/migrate目录中,我有一个带文件名的devise文件20130603211907_devise_create_users.rb

问题出在这里:如果我这样做rake db:migrate:down VERSION=20130603211907,将删除所有新的迁移.

如何在不删除所有较新的迁移的情况下再次运行迁移?

ruby rake ruby-on-rails devise

18
推荐指数
5
解决办法
3万
查看次数

在rails中的生产环境中创建DB

我已经搜索了如何在生产环境中为rails创建数据库并得到了2个答案.现在我对这些答案感到困惑.

RAILS_ENV=production rake db:create db:schema:load
RAILS_ENV=production rake db:create
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别?这个架构意味着什么?

我们为什么需要db:schema:load

提前致谢.

database schema ruby-on-rails production-environment ruby-on-rails-4

7
推荐指数
1
解决办法
4998
查看次数

rake db:seed验证失败

我正在做hartle教程的第12章.我跑的时候遇到bundle exec rake db:seed了这个错误:

ActiveRecord::RecordInvalid: Validation failed: Email has already been taken
Run Code Online (Sandbox Code Playgroud)

我试着跑步

rake db:reset
rake db:migrate
rake db:test:prepare
Run Code Online (Sandbox Code Playgroud)

最后

rake db:populate 
Run Code Online (Sandbox Code Playgroud)

但他们没有解决问题.当我运行rake db:populate它时给出:

Don't know how to build task 'db:populate'
Run Code Online (Sandbox Code Playgroud)

这是我的seeds.rb文件:

    # Users
User.create!(name:  "Example User",
             email: "example@railstutorial.org",
             password:              "foobar",
             password_confirmation: "foobar",
             admin:     true,
             activated: true,
             activated_at: Time.zone.now)

99.times do |n|
  name  = Faker::Name.name
  email = "example-#{n+1}@railstutorial.org"
  password = "password"
  User.create!(name: name,
              email: email,
              password:              password,
              password_confirmation: password,
              activated: true,
              activated_at: Time.zone.now)
end

# Microposts …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails railstutorial.org

5
推荐指数
1
解决办法
5444
查看次数

将所有以前的迁移文件保存在rails中的目的是什么?

我假设每当rails应用程序需要构建数据库时,它将通过按时间戳顺序遍历所有迁移文件来实现.它是否正确?

还是有其他原因吗?

ruby migration ruby-on-rails

2
推荐指数
1
解决办法
591
查看次数

为什么我的Rails DB迁移不能创建coluimns?

我正在尝试使用PostgreSQL在Rails中进行数据库迁移,但结果模式不包含任何我的表定义.我没有看到我的语法有什么问题吗?

以下是我运行"rake db:migrate"后我的一个迁移文件和生成的模式文件的示例.

迁移文件:

class Fields < ActiveRecord::Migration[5.2]

      def change

        def up



          create_table :fields do |t|

            t.column :totalsalesprsn, :float, :limit => nil, :null => false

            t.column :totaladmkspend, :float, :limit => nil, :null => false

            t.column :totalsalescost, :float, :limit => nil, :null => false

            t.column :miscsales, :float, :limit => nil, :null => false

            t.column :numleads, :float, :limit => nil, :null => false

            t.column :costleads, :float, :limit => nil, :null => false

            t.column :totalsalescost2, :float, :limit => nil, :null => false

            t.column …
Run Code Online (Sandbox Code Playgroud)

ruby database migration postgresql ruby-on-rails

0
推荐指数
1
解决办法
70
查看次数