web2py: как переименовать таблицу?

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

1 ответ

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

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

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

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

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

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

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

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

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

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

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

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

  • Брови к приложению /table_rename

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

  • Измени свой код модели

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

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

Другие вопросы по тегам