Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        public DatabaseStructure LoadStructure()
        {
            var dbs = DatabaseStructure.Load(Version.GetFile());
            var mod = new VariantDef(VariantFile);

            mod.RunTransform(dbs);
            return(dbs);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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;
            }
        }