标签: rake-task

PG不可定义的错误关系用户不存在

我之前看到过这个问题,但仅限于rspec.我还没有进行测试,因为它对我来说太进步了,但有一天我会尽快!:P

当我尝试使用我的应用注册/登录时出现此错误.我不知道在哪里修理它.我使用devise来创建我的用户,并使用omn​​iauth2来登录谷歌.

这是错误

ActiveRecord::StatementInvalid at /users/auth/google_oauth2/callback
PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 5:              WHERE a.attrelid = '"users"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"users"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)

我试过rake db:migrate,但它已经创建,在架构表中存在用户.有没有人以前得到这个错误?

database.yml的

#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
# …
Run Code Online (Sandbox Code Playgroud)

database ruby-on-rails oauth-2.0 rake-task ruby-on-rails-3

88
推荐指数
8
解决办法
8万
查看次数

rake db:使用postgresql创建编码错误

我正在将我正在使用的现有rails项目导入到我的新arch linux系统中,我已经正确安装了所有gems和postgresql,但是在运行时遇到了一些问题:

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

我收到以下错误

PGError: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
HINT:  Use the same encoding as in the template database, or use template0 as template.
: CREATE DATABASE "System_test" ENCODING = 'unicode'
Run Code Online (Sandbox Code Playgroud)

我使用正确的编码手动创建了数据库,并且迁移运行良好,但我可以运行

rake db:test:clone
Run Code Online (Sandbox Code Playgroud)

命令因为它尝试创建数据库,我不想手动创建数据库.那么,有人知道解决这个问题吗?

问候

编辑:这是我的database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: System_development
  pool: 5
  username: forellana
  password:

test: &test
  adapter: postgresql
  encoding: unicode
  database: System_test
  pool: 5
  username: forellana
  password:

cucumber:
  <<: *test
Run Code Online (Sandbox Code Playgroud)

这是命令的完整输出

(in /home/fespinoza/Workspace/TLI)
PGError: …
Run Code Online (Sandbox Code Playgroud)

postgresql encoding rake-task ruby-on-rails-3

45
推荐指数
4
解决办法
2万
查看次数

简单的rails rake任务拒绝运行时出现错误"不知道如何构建任务",为什么?

我有这个简单的rake任务拒绝运行.我只是不明白为什么它看起来正确.谁可以指出我可能非常简单的错误?谢谢!

/lib/tasks/reindex.rb:

namespace :db do

  desc "Tire reindex profiles"

  task :reindex => :environment do
    system "cd #{Rails.root} && rake environment tire:import CLASS='Profile' FORCE=true"
  end

end
Run Code Online (Sandbox Code Playgroud)

错误:

rake db:reindex
rake aborted!
Don't know how to build task 'db:reindex'
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails rake-task

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

Rails Rake任务 - 访问模型类

我想定义一个Ruby(1.9.2)-on-Rails(3.0.5)rake任务,它将用户添加到User表中.该文件如下所示:

#lib/tasks/defaultuser.rake
require 'rake'
namespace :defaultuser do
  task :adduser do 
    u=User.new
    u.email="bob@example.com"
    u.password="password"
    u.save
    u.errors.each{|e| p e}
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我会调用任务为

> rake defaultuser:adduser
Run Code Online (Sandbox Code Playgroud)

我测试了Rails控制台中的adduser任务中的代码,它运行正常.我测试了rake任务,只运行

print "defaultuser:adduser"
Run Code Online (Sandbox Code Playgroud)

在任务的主体,它工作得很好.

然而,当我把它们结合起来时,它抱怨道,说道

rake aborted!
uninitialized constant User
Run Code Online (Sandbox Code Playgroud)

我试过了

require File.expand_path('../../../app/models/user.rb', __FILE__)
Run Code Online (Sandbox Code Playgroud)

在rake文件中的命名空间定义之上,但是没有用.我有

rake aborted!
ActiveRecord::ConnectionNotEstablished
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能在Rails控制台的Rake任务中对User模型类具有相同的访问权限?

ruby-on-rails rake-task

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

Rails是否为rake任务运行初始值设定项?

我运行rake任务时是否执行了config/initializers的脚本?

ruby-on-rails initializer rake-task

29
推荐指数
1
解决办法
6680
查看次数

如何声明依赖于参数化任务的Rake任务?

我见过一个例子,其中一个任务有参数和一个依赖任务,如:

task :name, [:first_name, :last_name] => [:pre_name] do |t, args|
  args.with_defaults(:first_name => "John", :last_name => "Dough")
  puts "First name is #{args.first_name}"
  puts "Last name is #{args.last_name}"
end
Run Code Online (Sandbox Code Playgroud)

如果它是一个任务依赖项,你将如何将参数传递给name任务:

task :sendLetter => :name
  #do something
end
Run Code Online (Sandbox Code Playgroud)

ruby rake rake-task

27
推荐指数
2
解决办法
7873
查看次数

如果我关闭我的终端将在Heroku上继续运行rake任务

我有一个需要运行我的数据的脚本.我为此做了一个rake任务.如果我通过使用启动rake任务,heroku run rake my_task:my_action并在一段时间后我的互联网断开连接.会发生什么.任务是否会继续运行,因为它已在远程计算机上启动.我认为它会继续运行.有任何想法吗.

ruby-on-rails heroku rake-task

24
推荐指数
1
解决办法
5202
查看次数

如何在Rake任务中执行命令?

我在rails应用程序中有rake任务.我想在rake任务中运行命令行命令.我怎样才能做到这一点.我试过以下但失败了

desc "Sending the newsletter to all the users"
task :sending_mail do
  run "cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v"
  system "cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v &"
end
Run Code Online (Sandbox Code Playgroud)

上面的run命令抛出run方法undefined&System命令没有抛出任何错误但没有执行.

shell rake command-line ruby-on-rails rake-task

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

为什么我得到一个未初始化的常量rake任务,Rails 4.1.8

我有这个奇怪的问题,如果我这样做:

  namespace :xaaron do
    task :get_roles do
      roles = Xaaron::Role.all
      puts roles
    end

    task :get_role, [:name] do |t, args|
      role = Xaaron::Role.find(args[:name].parameterize)
      puts role
    end
  end
Run Code Online (Sandbox Code Playgroud)

第一项任务将完美无缺.我甚至可以放在binding.pry一边做,Xaaron::Role并获得有关角色的信息.但第二项任务爆炸说明NameError: uninitialized constant Xaaron::Role

我在我的主应用程序中运行每个任务(因为这些任务在引擎内)为:bin/rake xaaron:get_rolesbin/rake xaaron:get_role.

为什么第二个爆炸但第一个不爆炸?是否存在争论的事情?

更新

我应该注意,我可以bin/rails c在使用所述引擎的主应用程序中执行,Xaaron::Role并获取有关Roles表的信息.

ruby rake ruby-on-rails rake-task ruby-on-rails-4

17
推荐指数
2
解决办法
9602
查看次数

使用来自其他任务的参数调用rake任务

我希望能够为我必须从另一个任务调用的任务传递参数

不带参数的调用对我来说是这样的:

Rake::Task["mytask1"].invoke
Run Code Online (Sandbox Code Playgroud)

但是,对于这样的参数,它不会:

Rake::Task["mytask1[1,v18_0,20141230]"].invoke
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby-on-rails rake-task

15
推荐指数
2
解决办法
8802
查看次数