如何使用 pg-promise 删除然后重新创建数据库?
How to drop and then recreate database with pg-promise?
我希望能够通过代码重置我的数据库,方法是先删除数据库,然后重新创建它,然后重新创建所有表,然后用数据重新填充它。
但如果我只是这样做:
await db.any('DROP DATABASE ',cn.database)
我收到以下错误:
error: syntax error at or near "'testdb'"
很可能是因为我正在尝试删除当前连接的数据库。
那么有没有办法在运行时使用 pg-promise 删除或重置数据库?
在 SQL 语法中,数据库名称是标识符,而不是值文字。您需要使用 SQL Name filter:
await db.none('DROP DATABASE ~', cn.database);
// or
await db.none('DROP DATABASE :name', cn.database);
// or
await db.none('DROP DATABASE ${database:name}', cn);
我希望能够通过代码重置我的数据库,方法是先删除数据库,然后重新创建它,然后重新创建所有表,然后用数据重新填充它。
但如果我只是这样做:
await db.any('DROP DATABASE ',cn.database)
我收到以下错误:
error: syntax error at or near "'testdb'"
很可能是因为我正在尝试删除当前连接的数据库。
那么有没有办法在运行时使用 pg-promise 删除或重置数据库?
在 SQL 语法中,数据库名称是标识符,而不是值文字。您需要使用 SQL Name filter:
await db.none('DROP DATABASE ~', cn.database);
// or
await db.none('DROP DATABASE :name', cn.database);
// or
await db.none('DROP DATABASE ${database:name}', cn);