Год назад я разработал веб-платформу на PHP, и я был горжусь уровнем доступа к данным, который я написал для него. С тех пор я начал снова и снова использовать одну и ту же концепцию. Но теперь я думаю поднять его на новый уровень, вместо того чтобы переписывать весь код доступа к базе данных, я хотел бы создать инструмент, который будет анализировать мою схему SQL и генерировать классы DAL самостоятельно.
Информация, необходимая из схемы SQL для генерации кода:
* Tables
* Fields
* Fields types
* Foreign keys
Действительно, я искал какой-то парсер SQL и нашел кое-что, но в итоге решил сделать это по-другому. Вместо того, чтобы генерировать код из самой схемы SQL, я бы сгенерировал его из метаданных, которые я создал бы в соответствии с реальной схемой базы данных.
Я думал о чем-то вроде:
TableName[
FieldA : Type;
FieldB: Type;
]
TableName2[
FieldA : Type, FK(TableName.FieldA);
FieldZ: Type;
]
Это вовсе не спецификация, это просто быстрый результат, который говорит о том, какого рода вещи я бы хотел достичь.
Вопрос теперь таков:
Есть ли в Python какой-то встроенный API или какая-то сторонняя библиотека, которую я мог бы использовать для анализа какого-либо формата, который позволил бы мне определить мою схему, как указано выше?
Я не хочу изобретать велосипед, и мне совсем не интересно писать собственный парсер, все, что мне нужно, - это получить базовый и рабочий инструмент как можно скорее.
Спасибо