我有一个现有的数据库,其结构用于整个应用程序。数据库的实例定期轮换。我有一个数据库文件template.sqlite
,它用作所有新创建的数据库的模板。我想使用它,而不是创建脚本,所以我只需要维护一个文件,即空数据库模板本身。
我想基于该模板文件创建一个具有相同结构的内存数据库。
我知道我可以打开数据库并读取它的结构,然后在内存中手动创建数据库。如果可能的话,我希望能够以更自动的方式进行。
我有一个现有的数据库,其结构用于整个应用程序。数据库的实例定期轮换。我有一个数据库文件template.sqlite
,它用作所有新创建的数据库的模板。我想使用它,而不是创建脚本,所以我只需要维护一个文件,即空数据库模板本身。
我想基于该模板文件创建一个具有相同结构的内存数据库。
我知道我可以打开数据库并读取它的结构,然后在内存中手动创建数据库。如果可能的话,我希望能够以更自动的方式进行。
作为所有寻求此问题答案的快速解决方案:一些可以解决问题的C
代码:
int loadOrSaveDb(sqlite3 *pInMemory, const char *zFilename){
int rc;
sqlite3 *pFile; /* Database connection opened on zFilename */
sqlite3_backup *pBackup; /* Backup object used to copy data */
rc = sqlite3_open(zFilename, &pFile);
if( rc==SQLITE_OK ) {
pBackup = sqlite3_backup_init(pInMemory, "main", pFile, "main");
if( pBackup ){
(void)sqlite3_backup_step(pBackup, -1);
(void)sqlite3_backup_finish(pBackup);
}
rc = sqlite3_errcode(pTo);
}
(void)sqlite3_close(pFile);
return rc;
}