【问题标题】:PHP-based database models that sync with database?与数据库同步的基于 PHP 的数据库模型?
【发布时间】:2011-09-19 17:14:36
【问题描述】:

Django 模型非常酷,因为您可以直接在代码中定义所有模型/表,然后将其与数据库同步。这样,当您更新生产服务器时,只需运行迁移/同步脚本,就不会忘记更新任何表。

我现在正在处理的项目不是基于 Django 或 Python,它是用 PHP 编写的,所有查询都是直接用 SQL 编写的(没有 ORM)。每次进行更改时,我们都有许多需要更新的数据库。现在我们基本上是在复制和粘贴我们的 SQL 脚本并在需要运行的任何地方运行它们,或者如果这是一个很大的变化,我们可能会使用脚本。但问题是有时我们会忘记包含一些 SQL。

但是,如果我们有一个基于代码的解决方案,那么它会自动通过我们的推送签入,并且我们不会忘记运行它。所以...我正在寻找一种解决方案,让我们在 PHP 中定义所有模型,但让我们继续编写直接 SQL 而不使用 ORM(项目已有 10 年历史,实施起来工作量太大现在是一个 ORM)。如果它也可以将我们现有的数据库转换为 PHP 模型,那就太好了。

是否有现成的解决方案?

【问题讨论】:

    标签: php database synchronization production-environment


    【解决方案1】:

    我没有使用 Django 提供的出色模型支持的基于 PHP 的系统,但这个项目看起来很有希望:Django-like PHP querying interface

    【讨论】:

    • 我想我需要一些更稳定和经过测试的东西......这听起来像是一个人写的,还没有完成。
    • 嗨,马克,我是上面链接项目的开发人员。你肯定是对的,它非常不稳定,只有我自己支持。但是,它听起来确实很像您正在寻找的东西。如果您正在开发一个小型的、非关键任务的 Web 应用程序,那么它仍然是一个非常可行的选择。我希望我的工作能够传播一点,其他人能够尽可能地做出贡献。如果没有,没有冒犯,祝你好运! - 安德鲁
    • 嗨,安德鲁,也许对于一个较小的/个人项目,我可以尝试一下,但不幸的是,这个项目不行。感谢您的回复:)
    【解决方案2】:

    我猜你可以使用 Doctrine2。支持原生SQLhttp://www.doctrine-project.org/docs/orm/2.0/en/reference/native-sql.html

    【讨论】:

    • 原生 SQL 的东西对我们不起作用。我想要模型而无需修改任何现有的 SQL。根据您的建议,我必须支持并修改每个数据库查询,并用这个 createNativeQuery 函数包装它。不过我得看看其余的,也许它仍然可以做我想做的事。
    【解决方案3】:

    【讨论】:

    • 不知道这些工具的存在。它们听起来和我要找的完全一样。也许甚至比将所有内容都转换为模型还要少……我将不得不尝试一下。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2011-05-22
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多