LINUX.ORG.RU

[PHP] Есть под PHP кроссплатформенный генератор SQL-кода для создания таблиц?

 


0

1

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

Может, кто-то уже этим мучился и сделал кроссплатформенную генерилку CREATE TABLE? Интересует mysql, sqlite, oci и postgres.

★★★★★

Ответ на: комментарий от anonymous

>А всякие ORM такое не умеют?

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

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Был вроде аналог sqlalchemy для пыха, только я не помню как он называется. :)
А так, тебе нужно в окошки потыкать? По моему в модели, в файле, куда проще и удобнее чем в уях.

zJes ★★
()
Ответ на: комментарий от zJes

>А так, тебе нужно в окошки потыкать?

Не-не :)

У меня есть свои объекты с описанием полей. Для всяких юниттестов нужна возможность автоматически генерировать соответствующие им таблицы БД. Пока был один mysql, было не сложно, там генератор таблиц в два десятка строк укладывается. Но сейчас стал делать ORM-бэкенд под PDO, тестирую на sqlite. И, что не удивительно, mysql-формат CREATE TABLE не работает для sqlite :) Пришлось писать обёртку. Но громоздко. А ещё postgres и oci нужны... Вот и завёл сабжевую тему.

Но уже нашёл PEAR MDB2. Если оно работоспособно, то через него и сделаю. Тормоз, конечно, но мне не работать через него, а только изредка таблицы создавать :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Просто FYI.

В той же sqlalchemy ну или эликсир, создается модель таблиц (которую, кстати, тоже можно сгенерировать), потом легким движением руки подсовывается бакэнд (access, firebird, informix, maxdb, mssql, mysql, postgresql, sqlite, oracle,sybase). Меня оно спасло, когда для перенос базы делал.

zJes ★★
()

В итоге остановился на DBAL от Doctrine. MDB2 не позволяет адекватно и унифицированно связаться с PDO. А собственная скорость у MDB2 очень невысока.

DBAL же - надстройка над теми же PDO, говорят, достаточно шустрая. Оценим...

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

не совсем в тему, но рекомендую посмотреть на symfony...Там как раз doctrine. Плюс вся обвязка и сделано достаточно по-человечески, есть вменяемая документация. Избавляет от кучи однообразного кодирования.

deadman ★★
()
Ответ на: комментарий от deadman

>не совсем в тему, но рекомендую посмотреть на symfony

Смотрел. Не понравилось :) Как и всё, где от Doctrine используется ORM. На практике в PHP неудобно использовать properties объектов для доступа к данным. Порождает много лишней писанины.

KRoN73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.