Exemple #1
0
        public void updateSchemaIfNeeded()
        {
            //db context
            var dbc = this.newContext();
            //fields
            meta_name = stringColumn("name", 150);
            meta_value = (IntColumn)intColumn("value").allowNull();
            meta_text = (StringColumn)stringColumn("text", 150).allowNull();

            //table
            tbl_meta= this.newTable("ds_meta", meta_name, meta_value, meta_text);

            //create if not exists
            dbc.create(tbl_meta);
            //look version
            int ver = currentVersion(dbc);
            if (ver == -1)
            {
                // insert version row
                dbc.insertInto(tbl_meta).Values(meta_name.value("schema version"), meta_value.value(0))
                    .execute();
                //
                ver = 0;
            }
            //
            for (int i = ver; i < schemaUpdates.Count; i++)
            {
                schemaUpdates[i].apply(this, dbc);
            }
            setSchemaVersion(schemaUpdates.Count, dbc);
            //commit
            dbc.SubmitChanges();
        }
Exemple #2
0
 internal void setSchemaVersion(int version, DbContext dbc)
 {
     dbc.update(tbl_meta).Set(meta_value.value(version)).where(meta_name.equal("schema version"))
         .execute();
 }