首页 > 解决方案 > 我对数据库版本如何在使用 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)');}

                         }

标签: fluttersqflite

解决方案


推荐阅读