flutter - 我对数据库版本如何在使用 sqflite 的应用程序上工作有一些疑问?
问题描述
我正在研究颤振近 6 个月。我用数据库 SQFlite 开发了一个颤振应用程序。现在客户使用这个应用程序。我对数据库版本如何在使用 sqflite 的应用程序上工作有一些疑问?我已经创建了一个 DatabaseHelper 类,当应用程序安装在设备中时,它将在用户的设备中创建一个数据库。
案例:我在表中添加了更多列,更新应用程序时,用户设备中的数据库或表不会更新。(我在 edlTable 中添加了更多 2 列作为名字,姓氏)
如何在更新应用程序时通过更新的数据库或表替换旧版本?(无需卸载和安装应用程序)
class DatabaseHelper {
static DatabaseHelper _databaseHelper;
static Database _database;
DatabaseHelper._createInstance();
factory DatabaseHelper() {
if (_databaseHelper == null) {
_databaseHelper = DatabaseHelper._createInstance();
}
return _databaseHelper;
}
Future<Database> initializeDatabase() async {
Directory directory = await getApplicationDocumentsDirectory();
String path = directory.path + 'edl.db';
var database = await openDatabase(path, version: 1, onCreate: _createDb);
return database;
}
String colEdlTable = 'table_edl';
String colIdEdl = "idEdl";
String colHeureDebut = "heureDebut";
String colHeureFin = "heureFin";
String colCommentaire = "commentaire";
String colServerEdlId = 'serverEdlId';
void _createDb(Database db, int newVersion) async {
await db.execute(
'CREATE TABLE $colEdlTable($colIdEdl INTEGER PRIMARY KEY
AUTOINCREMENT,$colHeureDebut TEXT, $colHeureFin TEXT, $colCommentaire TEXT,
$colServerEdlId INTEGER)');}
}
解决方案
推荐阅读
- c# - 在 ASP.net MVC 中,我可以在完成控制器操作之前处理我的 cshtml 逻辑吗?
- mongodb - Mongodb:将条件添加到数组更新中
- scala - 如何定义一个空元组?
- c - 可以在 gcc _Static_assert 中使用 c11 的“通用”关键字吗
- arrays - INDEX 与 MATCH 与 FIND/SEARCH & 位置
- alloy - 合金中嵌套值的总和
- java - FirebaseInstanceIdService 不存在
- reactjs - React + Typescript 上下文 - 如何定义接口并使用它?
- ubuntu-18.04 - vmmom 内核模块的版本不正确
- python - 在熊猫中循环查询