Web2py:如何在 table 创建时调用函数
Web2py: how to call a call a function on table creation
我正在从 sqlite 迁移到 mysql,并且需要在我的数据库中的列上创建索引。令人讨厌的是,mySQL 没有如果不存在则创建索引的功能。所以我想知道我是否可以在 table 本身由 web2py 创建时创建一个新索引,而不是任何其他时间。但是我应该在代码的什么地方放置一个仅在 web2py 调用 'create table'?
时调用的例程
web2py API 不包含确定给定 table 是否刚刚作为当前请求的一部分创建的方法(如果启用了迁移,table在第一次请求时创建,否则,假定 table 已经存在)。当通过 web2py 迁移机制在数据库中创建 table 时,会在应用程序的 /databases 文件夹中创建一个 *.table 文件。因此,要确定 table 是否 只是 创建,您必须确定在调用 db.define_table
之前不存在 *.table 文件,并且 *.table 文件确实存在。您可能不想对每个请求都执行此操作,因此最好在应用程序外部简单地处理索引创建。
更好的方法可能是手动生成 SQL 以检查索引是否存在,但同样,您希望在生产中的每个请求中避免这种情况。
请注意,已经讨论过向 DAL 添加索引创建功能,但目前还没有。
我正在从 sqlite 迁移到 mysql,并且需要在我的数据库中的列上创建索引。令人讨厌的是,mySQL 没有如果不存在则创建索引的功能。所以我想知道我是否可以在 table 本身由 web2py 创建时创建一个新索引,而不是任何其他时间。但是我应该在代码的什么地方放置一个仅在 web2py 调用 'create table'?
时调用的例程web2py API 不包含确定给定 table 是否刚刚作为当前请求的一部分创建的方法(如果启用了迁移,table在第一次请求时创建,否则,假定 table 已经存在)。当通过 web2py 迁移机制在数据库中创建 table 时,会在应用程序的 /databases 文件夹中创建一个 *.table 文件。因此,要确定 table 是否 只是 创建,您必须确定在调用 db.define_table
之前不存在 *.table 文件,并且 *.table 文件确实存在。您可能不想对每个请求都执行此操作,因此最好在应用程序外部简单地处理索引创建。
更好的方法可能是手动生成 SQL 以检查索引是否存在,但同样,您希望在生产中的每个请求中避免这种情况。
请注意,已经讨论过向 DAL 添加索引创建功能,但目前还没有。