Day-9: Migration 系虾米哇贵?

Migration建立资料表系虾密?

Rails使用了Migration资料库迁移机制来定义资料库结构,档案位於db/migrate/目录里,目的在於:
让资料库的修改也可以纳入版本控制系统,所有的变更都透过撰写Migration档案执行
资料库更新只需要执行rails db:migrate
跨资料库通用,不需修改程序就可以用在SQLite3、MySQL、Postgres等不同资料库
在上一节产生Model程序时,Rails就会自动帮你产生对应的Migration档案,也就是如db/migrate/20210920123300_create_walis.rb的档案。
Rails会用时间来命名档案,所以每次产生档名都不同,可以避免多人协作时的冲突

https://ithelp.ithome.com.tw/upload/images/20210923/20140259csszR5AxLf.png


create_table区块就是定义资料表结构的程序,
上一篇文章已经执行rails db:migrate来建立此资料表,
其中 timestamps 为在创建时自动新增的栏位,并会在执行过後,
自动产出两个栏位,建立两个时间(datetime)栏位:
资料建立时间 created_at 和最後更新时间 updated_at

Migration档案不需要和Model一一对应,若要在原先的Migration档案新增一个资料库栏位,请执行:
https://ithelp.ithome.com.tw/upload/images/20210923/20140259OAvFd2vCPb.png

一个空的 migration 档案在 db/migrate目录里
Migration 有提供 API 让我们可以变更资料库结构

例如:

我们可以新增一个栏位。输入rails g migration add_aliens_to_walis然後编辑这个Migration档案:

https://ithelp.ithome.com.tw/upload/images/20210923/20140259Fzj4JTmeN9.png

add_column :walis, :aliens, :string 意思是
我在wali这个资料库里,增加一个叫aliens的栏位,型别是字串

接着执行rails db:migrate就会在walis表格中新增一个aliens的栏位,栏位型别是string。
Rails会记录你已经对资料库操作过哪些Migrations!!!

程序界的麻瓜新手,我努力地写出自己看得懂的文章,有任何错误欢迎指正,乾虾/images/emoticon/emoticon42.gif

参考资料:rails实战圣经 / 为你自己学Ruby on Rails


<<:  DAY8 Linebot 自动回应-1

>>:  Ruby on Rails layout

从 IT 技术面细说 Search Console 的 27 组数字 KPI (9) :连结 - 外部连结

Google 每次公告都一直强调连结不重要,但每次都会抓乱连结的网站,且花很多心力叫网站 no-f...

Day 28 Exploitation Tools (searchsploit)

前言 在过去介绍过的工具里,有一些是收集资讯用的,像是作业系统、软件版本等资讯,找到这些资讯後,可能...

[Day9] Review and Supplement by use Leetcode problem

到今天也已经是第 9 天了,讲了颇多东西但是可能没有这麽完整或明确,所以这篇主要拿来复习之前的内容。...

ES6 几个小重点

var vs const let var的scoopt是function let 和const的sc...

DFIR的重要性神知道

资安领域辽阔,依事件处理阶段粗分为: 事前:预防 事中:识别与监控 事後:调查与预防同问题再发生 D...