web2py:如何重命名表?

时间:2011-09-27 19:15:08

标签: web2py database-table table-rename

如何在web2py中重命名数据库表?如果没有直接的方法,那么最好的解决方法是什么?我发现的只是这个帖子http://groups.google.com/group/web2py/browse_thread/thread/ef724508324347e2/7966a423c293bdec,其中web2py的创建者说他没有一个简单的方法。

1 个答案:

答案 0 :(得分:1)

在运行web2py时更改数据库架构

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

这不会改变你的代码!只有你可以改变你的代码。

所以,如果你只是这样做一次,比如因为你有一个丑陋或含糊不清的表名并希望重构你的代码,那么最好不要使用web2py来更改数据库模式中的表名。我就是这样做的。

  • 停止申请

  • 使用sqlite3控制台程序或您使用的任何数据库管理程序重命名db模式中的表。我想这可能是你真正的问题,因为你习惯使用web2py作为你的数据库管理程序。好吧,我想你将不得不学习如何使用sqlite3控制台程序。

  • 更改模型中的代码

  • 重新启动应用程序。

但是,如果你真的坚持只使用web2py来管理你的数据库,那么这样的事情应该有效:

  • 创建一个新的控制器,比如'table_rename'添加行

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

到控制器

  • 浏览application / table_rename

  • 停止申请

  • 更改型号代码

  • 删除table_rename

  • 重新启动应用程序。