Generating database tables from object definitions我知道,有几种(自动)方法可以创建数据访问层来操纵现有数据库(LINQ to SQL,Hibernate等)。但是我有点累了(我相信应该有一种更好的做事方式),例如: 从对象/实体定义生成数据库模式的方法怎么样?我似乎找不到像这样的工具的良好参考(我希望至少在某些框架中会有某种内置支持)。 如果可以,那将是完美的: 签出DataObjects.Net-旨在支持这种情况。仅代码,无其他。它的模式升级层可能是您所能找到的最有特色的层,它确实完全抽象了模式升级SQL。 观看产品视频-您不会注意到同步架构的任何额外操作。架构升级样本显示了此功能的预期用法。 当我们构建自己的框架的第一个版本(Inon Datamanager)时,我让它读取了预先存在的SQL表并从中自动生成Java对象。 当我来自Smalltalkish背景的同事构建了第二个版本时,他们从对象开始,然后自动生成表格。 实际上,直到我再次添加它之前,他们完全忘记了SQL部分。但是如今,我们只是在应用程序启动时运行触发器,该触发器遍历对象模型,检查表和所有正确的列是否存在,如果不存在则创建它们。很方便。 事实证明,这比您预期的要容易得多-如果您最喜欢的工具不支持类似的过程,则可以在几个小时内编写它-假设关系到对象的映射相对简单。 但问题是,这似乎取决于您是文化对象还是数据库人员-您可以将其中任何一个视为权威来源。 您描述的是GORM。它是Grails框架的一部分,旨在与Hibernate(将来可能是JPA)一起使用。当我第一次使用Grails时,它似乎倒退了。我对使用Rails样式的工作流程感到更满意,该工作流程包括制作表格并让框架从数据库架构生成支架。 GORM会为您持久保存域对象,以便您创建和更改对象,并管理数据库的创建/更新。现在,我已经习惯了,这更加有意义。很抱歉,如果您不想使用新的框架,但是它在1.1版的路线图上可以使GORM独立可用。 正如Jason所建议的那样,对象db可能是一个不错的选择。看一下db4objects。 我相信这是Microsofy实体框架试图解决的问题。尽管没有专门设计为"编译(数据库更改是自动完成的)",但它确实解决了处理对域模型的更改的问题,而无需极大地依赖基础数据模型。 您可能正在寻找对象数据库。 有点晚的答案,但是在这里: 我遇到了完全相同的问题,最终为它编写了自己的解决方案,但是仅使用.NET和SQL Server。它基本上会实现您描述的过程:
根据LGPL许可,包含数据库的库是免费的。 http://code.google.com/p/bsn-modulestore/ 是的,Django运行良好。 是的,它将根据您的数据模型定义生成SQL表(用python编写) 如果您更新结构,它不会总是更改现有表,您可能必须手动运行ALTER表 Ruby on Rails具有这些功能的更高级版本(Rails迁移),但是我不太喜欢该框架,我发现ruby和rails非常独特 我一直在研究一些"主要"框架,而Django似乎确实做到了我所说的。大概从这个截屏视频来看。 有人对此有何评论?它运作良好吗? 一些真正的大狗,例如ERwin Data Modeler,将成为DB的对象。您需要花大价钱才能负担得起该产品。 |