rails项目如何改变已建立的model结构

时间:2023-01-22 22:22:01

有时候第一次用rails g model或者scaffold建立数据模型的时候难免会出错,比如字段类型错误或者字段名称错误,甚至少添加或多添加了几个字段哦。这种情况下手动去修改数据结构是比较头疼的,官方的做法是使用:

rails g migration xxxForModelName

在db/migrate中会生成一个新的rb文件,然后修改里面的内容,有如下方法:

remove_column
:删除字段
rename_column 
:更改字段的名称
change_column  :修改字段的类型

add_column :增加字段

最后用rake db:migrate就可以鸟。比如我的model Users中少添加了一个字段password,我可以做如下操作:

1. rails g migration ChangeForUsers

2.在新建的rb文件中写入如下内容:

class ChangeForUsers < ActiveRecord::Migration
  def change
    add_column :users,:password,:string
  end
end

最后rake db:migrate即可

不过还有更方便的方法,比如你可以这么写:

rails g migration add_quantity_to_line_items quantity:integer

然后生成的migrate格式为:

class AddQuantityToLineItems < ActiveRecord::Migration

  def change

    add_column :line_items, :quantity, :integer

  end

end

这正是我们想要的.

rails项目如何改变已建立的model结构的更多相关文章

  1. Django项目运行时出现self&period;status&period;split&lpar;&&num;39&semi; &&num;39&semi;&comma;1&rpar;&lbrack;0&rsqb;&comma; self&period;bytes&lowbar;sent,ConnectionAbortedError&colon; &lbrack;WinError 10053&rsqb; 你的主机中的软件中止了一个已建立的连接。

    [02/Nov/2018 09:46:51] "GET /new_industry/category HTTP/1.1" 200 2891792 Traceback (most r ...

  2. &lbrack;Ting&&num;39&semi;s笔记Day5&rsqb;在部署到Heroku之前,将Rails项目从SQLite设定为PostgreSQL

    前情提要: Paas(平台及服务)公司Heroku是个可以把我们写好的App部署到网际网络的好地方.而本篇是我从自己的上一篇文章:将Ruby on Rails项目部署到Heroku遇到的问题,当时困扰 ...

  3. Ruby on rails 项目启动流程

    众所周知,我们可以通过rails s 这个命令来启动一个rails 项目,但是这条命令都干了哪些事呢?抽时间研究了下,同时感谢tomwang1013的博客.当我们输入rails s 这个命令的时候,项 ...

  4. &lbrack;Ting&&num;39&semi;s笔记Day4&rsqb;将Ruby on Rails项目部署到Heroku

    今天想笔记的是把自己写的Ruby on Rails项目部署(Deploy)到Heroku! Heroku是Salesforce公司旗下的云端服务商,支持多种程序语言像是Ruby,PHP,Python等 ...

  5. C&num; Socket 您的主机中的软件中止了一个已建立的连接 An established connection was aborted by the software in your host machine

    http://tieba.baidu.com/p/3223234493 问题: 服务端在接收客户端数据的时候,抛了个异常出来:System.Net.Sockets.SocketException: 您 ...

  6. System&period;getProperty&lpar;&rpar;引起的悲剧--您的主机中的软件中止了一个已建立的连接

    我已无法形容此刻我的心情.. 本来是已经写好的netty5的demo程序,server和client之间创建tcp长连接的..然后随便传点数据的简单demo..然后今天试了一下tcp粘包的例子,用到了 ...

  7. java&period;io&period;IOException&colon; 您的主机中的软件中止了一个已建立的连接解决办法

    问题现象和http://hi.baidu.com/cara_cloud/item/193a3ee327546d395a2d64be描述的一样,就是在eclipse的console栏中一直显示java. ...

  8. java&period;io&period;IOException&colon; 你的主机中的软件中止了一个已建立的连接。

    1.异常表现:我在jsp文件中有一个<form>表单,里面有一个<button>保存事件按钮.<button  onclick="addOrUPdate()&q ...

  9. ConnectionAbortedError&colon; &lbrack;WinError 10053&rsqb; 您的主机中的软件中止了一个已建立的连接

    socket服务端在接收socket客户端时抛出异常 ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接. socket服务端代码 ...

随机推荐

  1. go语言的selector

    For a primary expression x that is not a package name, the selector expression x.f denotes the field ...

  2. JavaScript深复制

    转载:http://blog.csdn.net/wanmingtom/article/details/7988284 这原本是*里的一个提问,看到答案后受益良多,于是翻译一下下 ...

  3. bzoj 1070&colon; &lbrack;SCOI2007&rsqb;修车 费用流

    1070: [SCOI2007]修车 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2785  Solved: 1110[Submit][Status] ...

  4. Web文件(图片)上传方法

    在开放Web应用程序的时候经常会遇到图片或者是文件上传的模块,这里就是该模块的实现的后台方法 上传图片方法 /// <summary> /// 功能:上传图片方法 /// </sum ...

  5. hadoop 及hbase zookeeper 经常出现问题

    往往是以下几个 1/ 各节点时间不统一(写shell文件统一时间) 2/配置文件 /etc/hosts文件中ip地址配置错误(更新ip) 3/断网后重启机器 ip地址被修改(更新配置文件中的ip)

  6. GitLab Wiki 内容恢复版本管理

    原来一直在网站上写Wiki文档, 最近手欠误删一篇文档, 想要恢复文档时才发现原来gitlab的Wiki是用git管理的从此再也不用为误删担心了 实现步骤: mac系统安装gollow brew in ...

  7. Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解

    上篇文章介绍了自定义View的创建流程,从宏观上给出了一个自定义View的创建步骤,本篇是上一篇文章的延续,介绍了自定义View中两个必不可少的工具Canvas和Paint,从细节上更进一步的讲解自定 ...

  8. &lbrack;SimplePlayer&rsqb; 4&period; 从视频文件中提取音频

    提取音频,具体点来说就是提取音频帧.提取方法与从视频文件中提取图像的方法基本一样,这里仅列出其中的不同点: 1. 由于目的提取音频,因此在demux的时候需要指定的是提取audio stream Au ...

  9. js 时间日期格式转换

    Date.prototype.Format = function(formatStr) { var str = formatStr; var Week = ['日', '一', '二', '三', ' ...

  10. Redis(转)

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...