gpt4 book ai didi

json - 如何使用 json 自动生成 rake 迁移文件

转载 作者:行者123 更新时间:2023-12-02 15:15:45 24 4
gpt4 key购买 nike

使用 sqlite3、Rails 4.2.0。运行rake db:migrate时出现以下错误。问题是迁移文件有以下内容:

t.json :blah 并且应该有 t.column :blah, :json

我的问题是,“如何正确自动生成迁移文件?

我用它来生成迁移文件:

rails generate scaffold rails_app title:string blah:json

这会将 t.json :blah 放入迁移文件中。

> ubuntu@host:~/rails_app$ rake db:migrate
> == 20150119183550 CreatePolreqs: migrating ====================================
> -- create_table(:rails_app) rake aborted! StandardError: An error has occurred, this and all later migrations canceled:
>
> undefined method `json' for
> #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007f8466ab9680>/home/ubuntu/rails_app/db/migrate/20150119183550_create_rails_app.rb:6:in
> `block in change'
> /home/ubuntu/rails-app/db/migrate/20150119183550_create_rails_app.rb:3:in
> `change' NoMethodError: undefined method `json' for
> #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007f8466ab9680> /home/ubuntu/rails_app/db/migrate/20150119183550_create_rails_app.rb:6:in
> `block in change'
> /home/ubuntu/rails_app/db/migrate/20150119183550_create_rails_app.rb:3:in
> `change' Tasks: TOP => db:migrate (See full trace by running task with
> --trace)

最佳答案

sqlite3 适配器尚不支持 json 列。

postgres 支持:http://guides.rubyonrails.org/v4.2/active_record_postgresql.html

要切换数据库,请更新您的 Gemfile 并替换

gem 'sqlite3' 

gem 'pg'

切换数据库的另一种方法是使用“text”列而不是“json”,但这需要您自己序列化 json,并且您不会获得 postgres 提供的任何精美的 json 查询运算符。

看起来 sqlite3 最近添加了对 json 列的支持,因此 sqlite-ruby 适配器在将来的某个时候可能会支持它:

http://www.infoq.com/news/2015/10/sqlite-39-released

https://github.com/sparklemotion/sqlite3-ruby

关于json - 如何使用 json 自动生成 rake 迁移文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28049093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com