2012-04-12 3 views
3

Мне очень нравится концепция RedBeanPHP. В процессе разработки вам не нужно беспокоиться об использовании базы данных, RedBean делает все для вас. Таблицы формируют себя, пока вы работаете, и когда вы довольны таблицами, вы их замораживаете. Единственная проблема, с которой я вижу, - это переместить проект в новую систему. Одной из замечательных частей ORM является то, что таблица базы данных создается из модели PHP, а это означает, что вам не нужно постоянно экспортировать структуру базы данных, чтобы она была безопасной. Я не вижу, как это можно было бы сделать с помощью RedBean, поскольку он формирует структуру таблицы после многократного использования со временем с переменными данными.Возможно ли быть намеренно строгим с табличной структурой в RedBeanPHP?

Я понимаю, что определение структуры таблицы заблаговременно ослабило бы смысл использования RedBean в первую очередь, но мне хотелось бы, по крайней мере, определить структуру базы данных в PHP после использования RedBean в «динамическом режиме», во время разработки, так что перемещение проекта между системами не было бы столь же болезненным.

Надеюсь, я выразил свою озабоченность достаточно ясно, чтобы его кто-то обратился к RedBeanPHP и, возможно, столкнулся с этим вопросом раньше.

Благодаря

+0

Может быть хорошо читать .. https://groups.google.com/ forum /? fromgroups #! topic/redbeanorm/SRya4L8QVIY –

ответ

0

я не выполнил его, но пока моя идея состоит в том, чтобы сделать сценарий миграции, который использует FUSE для загрузки всех типов боба, и перебирает Создав один компонент с поддельными данными для каждого типа компонента (на основе bean's metadata information) и сохранение его. Это позволит воссоздать структуру таблицы на основе моделей, тогда сценарий будет обрезать таблицы и импортировать в нее производственные данные.

Не очень элегантный, поскольку вам нужно будет объявить структуру базы данных где-то в ваших моделях, но достичь этой нулевой конфигурации невозможно.

+0

В настоящее время мои проекты RedBean полагаются на модульные тесты для воссоздания структур таблиц. Как хорошее решение, как в любой момент – Hubro

1

Можно создать метод R::freeze для создания пустой базы данных sqlite и использовать R::syncSchema, чтобы заполнить его структурой. Тогда в производстве задача может использовать тот же метод, чтобы отменить процесс.

+0

+1 Мне нравится эта идея. – marcio

2

Только что узнал, что вы можете использовать мета-данные, чтобы заставить типы в RedBean:

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

здесь: http://redbeanphp.com/extra/meta_data

+0

Как вы делаете то же самое для ints? – malhal

Смежные вопросы