Tag: 迁移

在Rails4中添加子类别

我有很多主要类别,并希望添加到每个子类别.-> 主要类别 – 子类别 – 子类别 – 子类别 主要类别 – 子类别 – 子类别 – 子类别 很多人建议我使用gem,但由于我对Rails相当新,我宁愿自己学习如何做到这一点,也要学习他们所有的方法。 我应该从Scaffold还是仅仅是Model ? 有人可以解释我如何开始(迁移等)以及如何设置它? 谢谢。

无法反转看似简单的rails迁移 – 获取“changed_table.column可能不是NULL”错误

我在我的开发数据库(sqlite3)中有一个表’发票’,其中填充了少量测试数据。 我想在其中添加一个列’invoice_number’并设置如下的迁移: class AddInvoiceNumberColumnToInvoices < ActiveRecord::Migration def self.up add_column :invoices, :invoice_number, :integer end def self.down remove_column :invoices, :invoice_number end end 我运行rake db:migrate ,它似乎迁移得很好。 但是,当我尝试通过ActiveRecord访问此列时,它似乎并不存在。 我决定撤消这个迁移,然后再试一次(不知道我要尝试什么,但我想我会先撤消它),使用rake db:migrate VERSION=’whatever_the_migration_before_this_one_was_called’ 。 这失败并显示错误消息 == AddInvoiceNumberColumnToInvoices: reverting =============================== — remove_column(:invoices, :invoice_number) rake aborted! An error has occurred, this and all later migrations canceled: altered_invoices.invoice_number may not be NULL 我找不到任何关于此错误的文档。 有人能够解释我做错了什么,更重要的是我如何解决这个问题?

Redmine的插件迁移

我正在为Redmine开发一个插件。 如何为其创建迁移? 如果我使用script / generate plugin_migration,它将被放在/ db / migrate文件夹中,但我需要它在我的插件文件夹中。

Rails – 从模型生成迁移脚本

我正在学习rails,我遇到了迁移。 似乎每次我想编辑模型时,我都需要添加一个迁移脚本,即使我尚未投入生产。 您可以编辑模型,添加所需的所有属性,并在发布之前自动生成迁移脚本吗? 谢谢!

Capistrano分段部署需要全新的数据库迁移

我让Capistrano设置为允许我将我的Ruby on Rails网站的暂存版本从git存储库成功部署到amazon服务器。 但是,在部署之后,我必须在服务器上的数据库上运行迁移。 如果不这样做,则无法加载任何包含登录表单或基于数据库的内容的页面。 当我在服务器上运行迁移时,我会看到正在迁移的网站上的每个单独迁移,而不仅仅是最近的迁移。 我知道Capistrano可以保持以前的迁移,我认为它会自动完成。 我的问题是,如何阻止明显的数据库擦除或丢失,以便只有在实际有新的迁移时才需要迁移? 我看到Capistrano输出中没有exception错误,而且对于Capistrano和数据库我是新手。 我注意到我的database.yml文件没有用于登台的条目,我想知道它是否可以像添加数据库设置为db / development.sqlite3的登台条目一样简单? 这是我的deploy.rb文件: set :application, “staging” set :scm, :git set :repository, “.” set :deploy_via, :copy #set :copy_cache, true set :copy_exclude, [“.git”] set :user, “username” set :use_sudo, false default_run_options[:pty] = true server “server_url”, :app, :web, :db, :primary => true set :deploy_to, “/var/www/staging” # if you want […]

改变表格时遇到僵局

我在包含大量行的表上的Rails应用程序中运行以下迁移: rake db:migrate *** [] rake aborted! *** [] An error has occurred, this and all later migrations canceled: *** [] *** [] PG::Error: ERROR: deadlock detected *** [] DETAIL: Process 33319 waits for AccessExclusiveLock on relation 18486 of database 16948; blocked by process 29772. *** [] Process 29772 waits for ShareLock on transaction 8652; […]

Rails – 如何解决这个孤立迁移问题?

在rake db:migrate:rollback STEP = 1之后,rake db:migrate:reset,rake db:migrate:setup,rake db:migrate:up VERSION = XXXXXXXXX我得到以下条目: Status Migration ID Migration Name —————————————————— up 0 *********NO FILE********** up 20120209023430 Create tasks 我怎样才能摆脱孤儿入境? 我在使用类似于上面的db之后几次遇到过这个问题。 有人可以解释究竟是什么导致了这一点。 Thx提前。 沙赫拉姆

Ruby on Rails 5.0升级与迁移用户表冲突

从4.2升级到Rails 5.0后,我收到以下错误: rails db:migrate == 20160703164716 AddDeviseToUsers: migrating ================================= — change_table(:users) rails aborted! StandardError: An error has occurred, this and all later migrations canceled: PG::DuplicateColumn: ERROR: column “email” of relation “users” already exists : ALTER TABLE “users” ADD “email” character varying DEFAULT ” NOT NULL /Users/my_username/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:98:in `async_exec’ /Users/my_username/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:98:in `block in execute’ 阅读以下两个Stack Overflowpost后: PGError:错误:关系“用户”的列“电子邮件”已存在 在现有模型上设计迁移 […]

rails小数精度和小数位数

我在rails应用程序中有大约30个表,大约有6个表,我想更改一些小数列的精度和比例。 你如何为已有的专栏做这件事? 您是否需要单独执行每个新迁移,或者可以一次完成所有迁移。

使用名称中的数字为列创建迁移

我正在将一个应用程序移植到rails中,并且有几个列被命名为 2nd_phone 2nd_address 当我尝试使用t.string:2nd_phone进行迁移时 我收到语法错误,意外的tINTEGER,期待tSTRING_CONTENT或tSTRING_DBEG或tSTRING_DVAR或tSTRING_END 任何想法如何在rals?