cari
Rumahpangkalan datatutorial mysqlRails 迁移 重新思考数据库模式变化
Rails 迁移 重新思考数据库模式变化Jun 07, 2016 pm 03:23 PM
railsberubahfikirpangkalan datamodelberhijrahMasuk

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 Ruby on Rails 是不断发展的 Web 开发框架,它实现了一些先进的想法,例如通过配置进行约定、大量的元编程、特定于域的语言以及用数据库包装代替对象关系映射。这篇文章研究的 Rails 模式迁移是一种把

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  Ruby on Rails 是不断发展的 Web 开发框架,它实现了一些先进的想法,例如通过配置进行约定、大量的元编程、特定于域的语言以及用数据库包装代替对象关系映射。这篇文章研究的 Rails 模式迁移是一种把每个数据库的模式变化与基本对象模型分离的思想。

  作为喜欢冒险的摩托车手,我关注两个严肃的社区:山地摩托车手和公路摩托车手。常规的看法是山地摩托车手更危险,但我并不同意。公路摩托手必须考虑要比石头和树危险得多的障碍:汽车。类似的异议也出现在面向对象应用程序开发使用的两个持久性策略之间。

  目前,持久性框架使用两种方法中的一种: 映射 或 包装 .映射解决方案允许创建独立的数据库模式和对象模型,然后用一个软件层来管理两者间的差异。映射解决方案试图构建一个与数据库模式的结构非常相似的对象模型。与之相反,包装解决方案用对象作为数据库表和行的包装器来操纵数据库中的数据。常规的想法认为在解决方案发布之后,映射解决方案通常更灵活,因为映射软件能够更好地处理模式或对象模型中的变化。但是这个想法忽略了其中最重要的部分:数据。要有效地管理涉及持久性域模型的应用程序变化,必须协调数据、模式和模型的变化。大多数项目团队做不到这一点。

  开发团队处理模式变化时,通常会用 SQL 脚本从头开始生成一个新版模式。脚本可能会删除所有的表,再添加所有的表。这样的策略会破坏所有测试数据,因此对于生产场景来说毫无价值。偶尔,工具可能会创建脚本,由脚本生成 delta 模式,或者生成使用 alter_table 这样的 SQL 命令修改以前版本的模式。但是很少有团队会费力气创建能取消模式变化的脚本,而且成功地创建了处理数据变化的自动脚本的团队更少。简而言之,传统的映射策略忽略公路上的汽车:回退坏的模式变化并处理数据。

  这篇文章深入研究了 Ruby on Rails 迁移 ―― Rails 处理生产数据库变化的解决方案。迁移用包装的方式组合了协调模式变化和数据变化的威力和简单性。(如果以前没有学习过活动记录 ―― Rails 底层的持久性层,我建议您先阅读 跨越边界 系列中以前的这篇 Rails 文章 .)

[1] [2] [3] [4] [5] [6] 

Rails 迁移 重新思考数据库模式变化

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
微信聊天记录怎么迁移到新手机微信聊天记录怎么迁移到新手机Mar 26, 2024 pm 04:48 PM

1、在旧设备上打开微信app,点击右下角的【我】,选择【设置】功能,点击【聊天】。2、选择【聊天记录迁移与备份】,点击【迁移】,选择要迁移设备的平台。3、点击【择需要迁移的聊天】,点击左下角的【全选】或自主选择聊天记录。4、选择完毕后,点击右下角的【开始】,使用新设备登录此微信账号。5、然后扫描该二维码即可开始迁移聊天记录,用户只需等待迁移完成即可。

Linux和Docker:如何实现容器的跨主机迁移和同步?Linux和Docker:如何实现容器的跨主机迁移和同步?Jul 29, 2023 pm 02:52 PM

Linux和Docker:如何实现容器的跨主机迁移和同步?摘要:Docker是一种流行的容器化技术,它提供了一种轻量级的虚拟化解决方案。在多主机环境中,实现容器的跨主机迁移和同步是非常常见的需求。本文将介绍如何使用Linux和Docker来实现容器的跨主机迁移和同步,并提供一些示例代码供参考。引言容器化技术的兴起使得应用部署和迁移变得更加灵活和高效。在多主机

深入理解MySQL索引优化器工作原理深入理解MySQL索引优化器工作原理Nov 09, 2022 pm 02:05 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于索引优化器工作原理的相关内容,其中包括了MySQL Server的组成,MySQL优化器选择索引额原理以及SQL成本分析,最后通过 select 查询总结整个查询过程,下面一起来看一下,希望对大家有帮助。

如何在GitLab中进行项目迁移和集成如何在GitLab中进行项目迁移和集成Oct 27, 2023 pm 05:53 PM

如何在GitLab中进行项目迁移和集成引言:在软件开发过程中,项目的迁移和集成是一项重要的任务。GitLab作为一个流行的代码托管平台,提供了一系列方便的工具和功能来支持项目迁移和集成。本文将介绍在GitLab中进行项目迁移和集成的具体步骤,并且提供一些代码示例来帮助读者更好地理解。一、项目迁移项目迁移是将已有的代码库从一个源代码管理系统迁移到GitLab上

微信聊天记录怎么迁移到另一个手机微信聊天记录怎么迁移到另一个手机May 08, 2024 am 11:20 AM

1、在旧设备上,依次点击“我”→“设置”→“聊天”→“聊天记录迁移与备份”→“迁移”。2、选择要迁移的目标平台设备,选择需要迁移的聊天记录,点击“开始”。3、在新设备上使用同一微信账号登录并扫描二维码,即可开启聊天记录迁移。

微信如何迁移聊天记录到另一手机微信如何迁移聊天记录到另一手机Mar 26, 2024 pm 04:50 PM

通过在旧设备上打开微信、选择“聊天记录迁移与备份”并按照提示操作,用户可以将聊天记录迁移到新设备。迁移过程包括选择需要迁移的聊天、扫描二维码并等待迁移完成。

使用C++进行云现代化:将遗留应用程序迁移到云端使用C++进行云现代化:将遗留应用程序迁移到云端Jun 01, 2024 am 09:21 AM

将遗留C++应用程序迁移至云端的最佳途径:重新平台化:将应用程序代码迁移至云原生平台(如Kubernetes),利用云服务。云化:在云平台上部署应用程序并利用云服务,无需进行代码重构。

数据库系统的构成包括哪些数据库系统的构成包括哪些Jul 15, 2022 am 11:58 AM

数据库系统由4个部分构成:1、数据库,是指长期存储在计算机内的,有组织,可共享的数据的集合;2、硬件,是指构成计算机系统的各种物理设备,包括存储所需的外部设备;3、软件,包括操作系统、数据库管理系统及应用程序;4、人员,包括系统分析员和数据库设计人员、应用程序员(负责编写使用数据库的应用程序)、最终用户(利用接口或查询语言访问数据库)、数据库管理员(负责数据库的总体信息控制)。

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),