草庐IT

generate-migrations-db

全部标签

ruby-on-rails - rake 数据库 :migrate giving 'unexpected\n' error

我使用Rails脚手架使用来自终端的命令制作模型:railsgeneratescaffoldVenuevenueid:string,venueName:string,venueAddress:string,venueCity:string,venueState:string,venueZip:integer,venuePhone:string,venueAge:int似乎安装或生成一切正常,但是当我运行rakedb:migrate时,出现以下错误:rakeaborted!/Users/Banderson/Documents/demo/db/migrate/20130202222224_

ruby-on-rails - 将时间戳添加到 db Rails 5+ 中的现有表

正在尝试将时间戳添加到现有表中。根据Apidocumenationadd_timestamps这是我的迁移代码:defchangeadd_timestamps(:products,null:false)end获取错误:*--add_timestamps(:products,{:null=>false})railsaborted!StandardError:Anerrorhasoccurred,thisandalllatermigrationscanceled:SQLite3::SQLException:CannotaddaNOTNULLcolumnwithdefaultvalueNUL

ruby-on-rails - rake 数据库 :migrate is being aborted due to rake version difference

这个问题在这里已经有了答案:YouhavealreadyactivatedX,butyourGemfilerequiresY(11个答案)关闭8年前。我遇到了错误rakedb:migrate--tracerakeaborted!Youhavealreadyactivatedrake10.1.1,butyourGemfilerequiresrake10.1.0.Usingbundleexecmaysolvethis./Users/iang/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:

ruby-on-rails - 为什么 `rake db:drop` 失败时退出状态为 0,并且不引发错误?

我惊讶地发现,当rakedb:drop(假设是Rails的其他内置raketasks)失败时,bash状态代码为0。$rakedb:dropcouldnotconnecttoserver:ConnectionrefusedIstheserverrunningonhost"localhost"(::1)andacceptingTCP/IPconnectionsonport5432?...$echo$?0也许更令人惊讶的是,当从Rails中调用任务时,它甚至不会引发错误。2.3.0:001>begin2.3.0:002>Rake::Task["db:drop"].invoke2.3.0:0

ruby-on-rails - Capistrano 部署 :migrate and db:migrate run all migrations every time

因此,我正在使用rails(ruby1.9.3p392、rails3.2、sqlite3db)并尝试将无处不在的博客教程代码部署到“生产”服务器(apache、passenger、ubuntu)。我的deploy.rb看起来像这样:require'bundler/capistrano'require'rvm/capistrano'load'deploy/assets'set:rvm_ruby_string,ENV['GEM_HOME'].gsub(/.*\//,"")set:rvm_type,:userset:user,'blah'set:application,'railsTest'

ruby-on-rails - 出现错误 - 类型 "json"不存在 - 在 rake db 迁移期间在 Postgresql 中

我最近将一个项目克隆到我的本地Ubuntu机器上,因为我在远程,并且在rakedbmigrate时,我收到以下错误:PG::UndefinedObject:ERROR:type"json"doesnotexist我的表中的几列是:add_column:table,:column,:json此迁移适用于工作中的Mac,但不适用于此处。我已尝试升级到PostgreSQL9.3.4,但问题仍然存在。我也尝试了sudoapt-getupgradepostgresql,但问题仍然存在。Ruby版本为2.1.0Rails版本是4.0.3 最佳答案

ruby-on-rails - Rails - 使用 `rails generate model` 指定不可为空的字段类型

根据rails文档http://guides.rubyonrails.org/migrations.html2.3SupportedTypeModifiers表示应该可以修改字段以允许或禁止列中的NULL,并且可以在终端上这就是我想要出现在迁移文件中的内容classCreateTestModelsfalset.timestampsendendend在终端上,我试过了railsgeneratemodelTestModelnon_nullable:string{null}railsgeneratemodelTestModel'non_nullable:string{null:false}'

ruby-on-rails - ruby rails : how to migrate changes made on models?

在Rails应用程序中,如何迁移我在模型中所做的更改?例如,我知道如果我使用命令“railsgmodelPersonname:string”创建一个模型,也会创建一个迁移。但是,如果在这一步之后我转到创建的模型“Person”并添加一个新属性,这个新属性是否会自动添加到迁移中以便以后在数据库中持久化?还是我从错误的角度看待这个问题,应该将属性添加到迁移,然后再添加到模型?问候 最佳答案 您不能真正向模型“添加”属性,您可以通过创建迁移文件并运行它来实现——Rails根据数据库中的列来确定模型具有的属性。但是,如果您希望能够通过批量分

ruby - 转储 JSON 对象的首选方法是什么? to_json、JSON.generate 还是 JSON.dump?

我需要将哈希对象转储到JSON,我想知道这三个中的哪一个,to_json、JSON.generate或JSON.dump,是执行此操作的首选方法。我已经测试了这些方法的结果,它们是相同的:>{a:1,b:2}.to_json=>"{\"a\":1,\"b\":2}">JSON.generate({a:1,b:2})=>"{\"a\":1,\"b\":2}">JSON.dump({a:1,b:2})=>"{\"a\":1,\"b\":2}" 最佳答案 来自docs:JSON.generateonlyallowsobjectsorarr

ruby-on-rails - rails 3 : how to generate custom error message from failed validation

我正在使用validates:feed_id,presence:true,uniqueness:true我应该如何生成自定义错误消息以指定用户已经订阅了此提要(feed_id)字段重复我知道我可以只做validate_uniqueness_of但它会不必要地使代码困惑。如果唯一性验证失败,我该如何传递特定的错误消息?? 最佳答案 使用键message和期望的消息作为值而不是true放置一个散列:validates:feed_id,presence:true,uniqueness:{message:"alreadysubscribed