web2py дал, как определить модель во время выполнения

Я новичок в wewb2py, возможно ли создать во время выполнения модель устаревшей базы данных для использования с ней DAL? Я видел, что есть какие-то скрипты, которые создают файл модели, но я не знаю, правильно ли класть этот файл в каталог модели моего приложения, я думаю, что нет, я провел некоторые эксперименты, я могу подключиться к базе данных с DAL запрашивает свои таблицы, и для каждой таблицы я могу получить определение полей, я пытался определить таблицу с помощью define_table, она работает, но пытается создать таблицу в базе данных и возвращает ошибку, потому что таблица уже существует; это соответствующая часть моего кода:

conn_string = "mysql://{0}:{1}@{2}/{3}".format(user,pwd,host,db_name)

БД = DAL(conn_string)

db.define_table('test1',Field('prova','string'))

это работает только в первый раз, когда таблица test1 еще не существует в базе данных, мне не нужно создавать таблицы, работайте только со своими данными, можете ли вы меня направить?


person arpho    schedule 20.12.2013    source источник


Ответы (1)


db = DAL(conn_string, migrate_enabled=False)

Вышеизложенное не позволит web2py выполнять какие-либо миграции, включая попытки создания каких-либо таблиц.

person Anthony    schedule 20.12.2013
comment
Не могли бы вы более подробно рассказать о том, что не работает и какие ошибки вы видите. Вы можете начать с нуля, удалив файлы *.table из папки /databases приложения и убедитесь, что migrate_enabled=False, если вы не хотите никаких миграций. - person Anthony; 23.12.2013
comment
Разве это не migrate=False? - person Jayadevan; 26.12.2013
comment
Если вы добавите migrate=False в вызов DAL(), это просто установит значение по умолчанию аргумента миграции в каждом вызове на .define_table(). Любая явная настройка аргументов миграции переопределяет это значение по умолчанию. Параметр DAL(..., migrate_enabled=False) полностью отключает миграцию независимо от значений аргументов миграции в каждом файле .define_table(). - person Anthony; 26.12.2013