Rails使用了Migration资料库迁移机制来定义资料库结构,档案位於db/migrate/目录里,目的在於:
让资料库的修改也可以纳入版本控制系统,所有的变更都透过撰写Migration档案执行
资料库更新只需要执行rails db:migrate
跨资料库通用,不需修改程序就可以用在SQLite3、MySQL、Postgres等不同资料库
在上一节产生Model程序时,Rails就会自动帮你产生对应的Migration档案,也就是如db/migrate/20210920123300_create_walis.rb
的档案。
Rails会用时间来命名档案,所以每次产生档名都不同,可以避免多人协作时的冲突。
create_table区块就是定义资料表结构的程序,
上一篇文章已经执行rails db:migrate
来建立此资料表,
其中 timestamps
为在创建时自动新增的栏位,并会在执行过後,
自动产出两个栏位,建立两个时间(datetime)栏位:
资料建立时间 created_at
和最後更新时间 updated_at
。
Migration档案不需要和Model一一对应,若要在原先的Migration档案新增一个资料库栏位,请执行:
一个空的 migration 档案在 db/migrate
目录里
Migration 有提供 API 让我们可以变更资料库结构
例如:
我们可以新增一个栏位。输入rails g migration add_aliens_to_walis
然後编辑这个Migration档案:
add_column :walis, :aliens, :string 意思是
我在wali这个资料库里,增加一个叫aliens的栏位,型别是字串
接着执行rails db:migrate
就会在walis表格中新增一个aliens的栏位,栏位型别是string。
Rails会记录你已经对资料库操作过哪些Migrations!!!
程序界的麻瓜新手,我努力地写出自己看得懂的文章,有任何错误欢迎指正,乾虾
参考资料:rails实战圣经 / 为你自己学Ruby on Rails
Google 每次公告都一直强调连结不重要,但每次都会抓乱连结的网站,且花很多心力叫网站 no-f...
前言 在过去介绍过的工具里,有一些是收集资讯用的,像是作业系统、软件版本等资讯,找到这些资讯後,可能...
到今天也已经是第 9 天了,讲了颇多东西但是可能没有这麽完整或明确,所以这篇主要拿来复习之前的内容。...
var vs const let var的scoopt是function let 和const的sc...
资安领域辽阔,依事件处理阶段粗分为: 事前:预防 事中:识别与监控 事後:调查与预防同问题再发生 D...