3

我真的很喜欢 RedBeanPHP 的概念。正在开发中的人不必担心使用数据库,RedBean 会为您完成这一切。表格在您工作时自行形成,当您对表格感到满意时,您可以冻结它们。我看到的唯一问题是当您将项目移动到新系统时。ORM 的重要部分之一是数据库表是从 PHP 模型创建的,这意味着您不必经常导出数据库结构以保证其安全。我看不出这将如何使用 RedBean 来完成,因为它在随着时间的推移反复使用可变数据后形成了表结构。

我意识到事先定义表的结构会削弱首先使用RedBean的点,但我至少想在开发过程中以“动态模式”使用RedBean之后在PHP中定义数据库的结构,所以在系统之间移动项目不会那么痛苦。

我希望我的顾虑足够清楚,可以让曾经使用过 RedBeanPHP 并且可能以前遇到过这个问题的人能够解决这个问题。

谢谢

4

3 回答 3

2

刚刚发现可以在 RedBean 中使用元数据来强制类型:

$bean->setMeta('cast.myproperty', 'text');

在这里找到:http ://redbeanphp.com/extra/meta_data

于 2013-02-28T15:02:51.160 回答
1

可以扩展该R::freeze方法以创建一个空的 sqlite 数据库并用R::syncSchema结构填充它。然后在生产中,任务可以使用相同的方法来反转过程。

于 2013-02-25T15:35:29.043 回答
0

我还没有执行它,但我的想法是制作一个使用 FUSE 加载所有 bean 类型的迁移脚本,并迭代地为每种 bean 类型创建一个带有假数据的 bean(基于 bean 的元数据信息)并存储它。这将基于模型重新创建表结构,然后脚本将截断表并将生产数据导入其中。

不是很优雅,因为您需要在模型中的某处声明数据库结构,但是使用零配置是不可能实现的。

于 2012-05-17T12:22:59.410 回答