到目前为止,我对数据库的经验一直在使用我工作的中间定义层。即SQL不是直接为表定义编写的,而是从中间文件生成的,该文件写出用于创建适当表的SQL脚本,在模式更改之间升级脚本,以及用于从中执行简单查询/更新/插入/删除的辅助函数。数据库中。
现在我处于一种我无法接触到这种情况的情况,原因是我不会进入,我发现自己在海上有些失去了应该做什么。我需要在数据库中有少量表,我不确定管理表定义通常做了什么。
人们通常只是使用创建表的SQL脚本作为定义,还是每个人都只使用在单独文件中管理定义的IDE并重新生成SQL脚本来创建表?
我真的不想引入对特定IDE的依赖,因为众所周知,开发人员很容易就小事情进行宗教辩论。
答案 0 :(得分:6)
打开您喜欢的文字编辑器 - >开始编写CREATE脚本 - >保存 - >放入源代码管理
该脚本现在成为您数据库的基础。只要有架构更改,它们就会被放回到脚本中,这样它们就不会丢失。
这些成为你的定义。
我发现它比依赖于为您生成这些脚本的任何特定IDE /平台更可靠。
答案 1 :(得分:1)
我们自己编写脚本并将其存储在源代码控制中,就像任何其他代码一样。然后将适合特定版本的脚本全部组合在一起并提升为prod。确保在更改现有表时使用alter table,因为如果它们有数据,您不想删除并重新创建它们!我使用drop并重新传输所有其他对象。如果您需要将记录添加到特定表(通常是某种类型的查找),我们也会在脚本中执行此操作。然后,使用其余的版本代码也会提升它。
对我来说,将脚本放在源代码管理中然而生成它们是关键步骤。这就是您如何知道下一个版本的更改内容。这是您可以查看早期版本并在出现问题时轻松恢复的方法。以与处理所有其他代码相同的方式处理数据库代码。
答案 2 :(得分:1)
如果你开始使用数据库设计并且最终想要为你创建脚本,你可以使用一种为你创建脚本的数据建模工具。一些工具是Erwin,Fabforce等......(虽然不是免费的)
如果您可以访问像SQL Management Studio这样的IDE,则可以使用非常简单的GUI创建它们。
如果您正在编写自己的代码,最好根据一个好的模板编写自己的脚本,这样就可以覆盖表定义的所有属性,如file_group,Collation&东西。希望这有帮助
创建基本副本后,生成脚本并拥有它的基本引用副本,以便您可以对它们执行“增量”更改并在源代码管理中对其进行管理。
答案 3 :(得分:0)
虽然我使用TOAD for Oracle,但我总是编写脚本来手动创建数据库对象。它为您(以及您的DBA)提供了对正在创建的内容和方式的更多控制和知识。
答案 4 :(得分:0)
如果您的架构在SQL中难以描述,那么您可能还有其他问题比哪个IDE更紧迫。如果需要图形表示,请使用建模文档,但是,您不需要IDE。
答案 5 :(得分:0)
有多种方式可以满足您的需求。
旧的传统方式是使用具有CREATE TABLE
语句的应用程序准备好脚本文件。
如果您是开发人员,而且也是Java企业开发人员,则可以使用名为Hibernate的持久性库生成完整的模式。 Here is a how to
如果您是DBA级别用户,则可以从一个环境中导出架构并将其导入当前环境。这是DBA中的标准做法。但是你可以看到它需要管理员访问权限。此外,这些方法取决于您使用的数据库(oracle,db2等)