web2py: как переименовать таблицу? - PullRequest
2 голосов
/ 27 сентября 2011

Как мне переименовать таблицу базы данных в web2py? Если нет прямого пути, какой лучший обходной путь для этого? Все, что я нашел, было этой веткой http://groups.google.com/group/web2py/browse_thread/thread/ef724508324347e2/7966a423c293bdec, где создатель web2py говорит, что у него нет простого пути.

1 Ответ

1 голос
/ 27 сентября 2011

Чтобы изменить схему базы данных при запуске web2py

db.executesql('ALTER TABLE old_name RENAME TO new_name;')

Это не изменит ваш код!Только вы можете изменить свой код.

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

  • Остановите приложение

  • Переименуйте таблицу в схеме БД, используя консольную программу sqlite3 или любую другуюПрограмма управления базой данных, которую вы используете вместо.Я думаю, это может быть вашей реальной проблемой, потому что вы привыкли использовать web2py в качестве программы управления базами данных.Ну, я полагаю, вам придется научиться использовать консольную консоль sqlite3.

  • Измените код в вашей модели

  • Перезапуститеapplication.

Однако, если вы действительно настаиваете на использовании web2py только для управления вашей базой данных, то должно сработать что-то вроде этого:

  • Создатьновый контроллер, скажем 'table_rename' Добавьте строку

    db.executesql ('ALTER TABLE old_name RENAME TO new_name;')

к контроллеру

  • Переходит к приложению / имя_таблицы

  • Остановите приложение

  • Измените код модели

  • Удалить имя_таблицы

  • Перезапустить приложение.

...