Ejemplo n.º 1
0
        public void TestSqlLite()
        {
            IDatabase db = new NecSqLiteDb(SQLITE_FILE);

            db.CreateDatabase();
            Assert.Equal(0, db.version);

            /* Valid case, no errors. */
            TestValid(db);

            /* Test sync */
            IDatabase db2 = new NecSqLiteDb(SQLITE_FILE);

            db.CreateDatabase();
            db.version = 11;
            Assert.Equal(11, db.version);
            Assert.Equal(11, db2.version);
            db2.version = 12;
            Assert.Equal(12, db.version);
            Assert.Equal(12, db2.version);

            /* Reset */
            db.version = 0;
            Assert.Equal(0, db.version);

            /* Invalid case, errors are thrown. */
            TestInvalid(db);
        }
        public IDatabase Build()
        {
            IDatabase database = null;

            switch (_setting.databaseSettings.type)
            {
            case DatabaseType.SqLite:
                string sqLitePath = Path.Combine(_setting.databaseSettings.sqLiteFolder, "db.sqlite");
                database = new NecSqLiteDb(sqLitePath);
                break;
            }

            if (database == null)
            {
                _Logger.Error("Database could not be created, exiting...");
                Environment.Exit(1);
            }

            Initialize(database);
            return(database);
        }
        private NecSqLiteDb PrepareSqlLiteDb(string sqLiteFolder)
        {
            string      sqLitePath = Path.Combine(sqLiteFolder, $"db.sqlite");
            NecSqLiteDb db         = new NecSqLiteDb(sqLitePath);

            if (db.CreateDatabase())
            {
                ScriptRunner scriptRunner = new ScriptRunner(db);
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/schema_sqlite.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_item.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_npc.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_monster.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_account.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_skill.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_union.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_auction.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_gimmick.sql"));
                scriptRunner.Run(Path.Combine(sqLiteFolder, "Script/data_maptransition.sql"));
            }

            new SqlMigrator(db).Migrate(Path.Combine(sqLiteFolder, "Script/Migrations/"));
            return(db);
        }