我正在尝试将我的Rails应用程序推到Heroku,而且我正在尝试创建/迁移数据库,但我无法运行rake命令。我得到的信息如下:
$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2439
bash: rake: command not found
我花了很多时间在我的本地机器上安装Postgres,它运行良好(能够运行rake命令,并且应用程序在本地运行),但我不知道为什么在迁移heroku数据库时会出现这个错误。
我正在尝试修改一个数据库以接受迁移文件中的utf8_general_ci
class AlterTableToArabic < ActiveRecord::Migration[5.2]
def change
ALTER DATABASE noswazefa_backend_development CHARACTER SET utf8 COLLATE utf8_general_ci;
end
end
但是,当我运行rake db:migrate时,这个错误出现在控制台中:
StandardError:发生了错误,所有后续迁移都取消了:未定义的局部变量或方法`utf8_ge
我在Rails 3.1.3中创建了一个新引擎,显然有一个可以复制所有迁移的rake任务。我尝试关注rake abc:install:migrations,它抛出了:
rake aborted!
Don't know how to build task 'abc:install:migrations'
(See full trace by running task with --trace)
我也尝试了rake abc_engine:install:migrations,也得到了同样的结果。
然后我读到bundle exec rake railties:install:
我正在尝试在我的rails 4应用程序中使用mailboxer。当我尝试部署数据库时,出现了一个问题。创建在通知表中具有依赖项的mailboxer会话表时出错。
我正在尝试删除通知对话的外键。
我创建了一个迁移,上面写着:
change_table :notifications do |t|
t.remove_foreign_key :conversations
但是,rake会中止并显示外键不存在。
rake aborted!
An error has occurred, this and all later migrations canceled:
PG::UndefinedObject
在运行Sinatra 1.0时,我想在程序中添加一个数据库表。在我的Rakefile中,我有一个任务
task :environment do
ActiveRecord::Base.establish_connection(YAML::load(File.open('config/database.yml'))["development"])
end
我的命名空间中有一个调用迁移代码的迁移任务:
namespace :related_products do
desc "run any migrations
我创建了数据库迁移,并在开发和生产服务器上迁移了数据。如果数据库是空的,我想从应用程序中填充数据库,并避免rake :seed和其他类似的方法。我知道它可以通过rake :seed完成,但是由于应用程序已经部署,所以我不想在开发和生产中污染deploy.rb。
在打开数据库或初始化活动记录时是否有钩子,我可以这样做
if !Pages.first
Pages.populate
end
我知道所有推荐的填充数据库的方法,但我还是更喜欢使用app。
谢谢
我有一个类似于下面的类:
class FruitKinds < ActiveRecord::Base
Apple = FruitKinds.find(:all).find { |fk|
fk.fruit_name == :apple.to_s
}
# ... other fruits
# no methods
end
在我的应用程序的其他地方,Apple和其他特定的水果通常被用作默认值,所以我想要一种方便的方法,以一种可枚举的、静态的方式引用它们。
然而,有一个问题。需要进行数据库迁移,以创建FruitKinds表,并使用Apple等特殊Fruits填充该表。
我有一个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