Я искал способ определить таблицы базы данных и изменить их с помощью API Django.
Например, я хотел бы написать некоторый код, который напрямую манипулирует таблицей DDL и позволяет мне определять таблицы или добавлять столбцы в таблицу по требованию программно (без запуска syncdb).Я понимаю, что на ум могут прийти django-south и django-evolution, но я на самом деле не считаю эти инструменты инструментами, предназначенными для интеграции в приложение и используемыми конечным пользователем ... скорее эти инструменты - утилиты, используемые дляОбновление таблиц вашей базы данных.Я ищу что-то, где я могу сделать что-то вроде:
class MyModel(models.Model): # wouldn't run syncdb.. instead do something like below
a = models.CharField()
b = models.CharField()
model = MyModel()
model.create() # this runs the create table (instead of a syncdb)
model.add_column(c = models.CharField()) # this would set a column to be added
model.alter() # and this would apply the alter statement
model.del_column('a') # this would set column 'a' for removal
model.alter() # and this would apply the removal
Это просто игрушечный пример того, как такой API будет работать, но суть в том, что мне было бы очень интересно узнатьесли есть способ программно создавать и изменять таблицы, как это.Это может быть полезно для таких вещей, как системы управления контентом, где можно динамически создавать новую таблицу.Другим примером может быть сайт, на котором хранятся наборы данных произвольной ширины, для которых таблицы должны генерироваться динамически с помощью интерфейса или импорта данных.Кто-нибудь знает какие-нибудь хорошие способы динамически создавать и изменять таблицы, как это?
(Конечно, я знаю, что можно делать прямые операторы SQL для базы данных, но этому решению не хватает возможности рассматривать базы данных как объекты)
Просто интересно, есть ли у людей какие-либо предложения илиподходы к этому ...