public void Reload() { // reload is not neccessary var db = CustomGetStructure(); if (db != null) { m_db = new DatabaseStructure(db); return; } string newfile = GetCurrentFileName(); if (newfile == null) { return; } if (newfile == m_file && new FileInfo(m_file).LastWriteTime <= m_fileTimeStamp) { return; } m_file = newfile; m_db = DatabaseStructure.Load(m_file); m_db.MarkAllFilled(); m_fileTimeStamp = new FileInfo(m_file).LastWriteTime; }
public void GetAlterSql(ISqlDumper dmp) { DumpSubFolder(dmp, "before"); VersionDef current = this; VersionDef prev = current.GetVersion(-1); VersionDb vdb = current.Db; DatabaseStructure curstruct = DatabaseStructure.Load(current.GetFile()); DatabaseStructure prevstruct = null; if (prev != null) { prevstruct = DatabaseStructure.Load(prev.GetFile()); } ISqlDialect dialect = vdb.Dialect; DbDiffOptions opts = new DbDiffOptions(); //if (prev != null) dmp.TargetDb = new DbDefSource(DatabaseStructure.Load(prev.GetFile()), DbDefSource.ReadOnly.Flag); opts.AllowRecreateTable = true; if (prevstruct == null) { dmp.CreateDatabaseObjects(curstruct); } else { dmp.AlterDatabase(prevstruct, curstruct, opts, new Plugin.dbmodel.DbDefSource(prevstruct, Plugin.dbmodel.DbDefSource.ReadOnly.Flag), AddSubFoldersToPlan); } DumpSubFolder(dmp, "after"); current.SetVersionSql(dmp); }
public DatabaseStructure LoadStructure() { var dbs = DatabaseStructure.Load(Version.GetFile()); var mod = new VariantDef(VariantFile); mod.RunTransform(dbs); return(dbs); }
public static DatabaseStructure LoadStructure(this VersionDef verdef, VariantDef vardef) { if (verdef == null) { return(null); } var model = DatabaseStructure.Load(verdef.GetFile()); vardef.RunTransform(model); return(model); }
public void ChangedProps() { Cursor last = Cursor.Current; Cursor.Current = Cursors.WaitCursor; foreach (var ver in Versions) { DatabaseStructure dbs = DatabaseStructure.Load(ver.GetFile()); dbs.SetProps(m_props); dbs.Save(ver.GetFile()); } Cursor.Current = last; }
public void AddVersion(string version) { Reload(); DatabaseStructure dbs; if (Versions.Count > 0) { dbs = DatabaseStructure.Load(Versions[Versions.Count - 1].GetFile()); } else { dbs = new DatabaseStructure(); } dbs.SetProps(m_props); var vd = new VersionDef(this, version); Versions.Add(vd); WantVersionsDirectory(); dbs.Save(vd.GetFile()); Save(); }
public override void GenerateSql(AppObject appobj, ISqlDumper dmp, ISqlDialect dialect) { var vdb = (VersionDbAppObject)appobj; var fromv = vdb.GetVdb().FindVersion(FromVersion); var tov = vdb.GetVdb().FindVersion(ToVersion); DatabaseStructure fromstruct = null; if (fromv != null) { fromstruct = DatabaseStructure.Load(fromv.GetFile()); } DatabaseStructure tostruct = null; if (tov != null) { tostruct = DatabaseStructure.Load(tov.GetFile()); } if (tostruct == null) { return; } DbDiffOptions opts = new DbDiffOptions(); //if (prev != null) dmp.TargetDb = new DbDefSource(DatabaseStructure.Load(prev.GetFile()), DbDefSource.ReadOnly.Flag); opts.AllowRecreateTable = true; if (fromstruct == null) { dmp.CreateDatabaseObjects(tostruct); } else { dmp.AlterDatabase(fromstruct, tostruct, opts, new Plugin.dbmodel.DbDefSource(fromstruct, Plugin.dbmodel.DbDefSource.ReadOnly.Flag), null); } tov.SetVersionSql(dmp); }
public void CreateDefaultVariableTable() { AddVersion("1"); var file = Versions[0].GetFile(); var dbs = DatabaseStructure.Load(file); var tbl = new TableStructure(); dbs.Tables.Add(tbl); tbl.FullName = new NameWithSchema("Variables"); tbl._Columns.Add(new ColumnStructure { ColumnName = "Name", DataType = new DbTypeString { Length = 50 } }); tbl._Columns.Add(new ColumnStructure { ColumnName = "Value", DataType = new DbTypeString { Length = 250 } }); var pk = new PrimaryKey { Name = "PK_Variables" }; pk.Columns.Add(new ColumnReference("Name")); tbl._Constraints.Add(pk); tbl.FixedData = new InMemoryTable(tbl); tbl.FixedData.Rows.Add(new ArrayDataRecord(tbl, new object[] { "dbversion", "0" })); dbs.Save(file); if (String.IsNullOrEmpty(m_props.GetVersionSql)) { m_props.GetVersionSql = DEFAULT_GET_VERSION; } if (String.IsNullOrEmpty(m_props.SetVersionSql)) { m_props.SetVersionSql = DEFAULT_SET_VERSION; } }