/// <summary> /// Creates the O auth token table if needed. /// </summary> /// <param name="db">The db.</param> private void CreateOAuthTokenTableIfNeeded(DapperContext db) { if (!db.TableExists(OAuthTokenTableName)) { db.ExecuteSchema( string.Format( "create table {0} (Secret varchar(128) not null, Token varchar(128) not null primary key)", this.OAuthTokenTableName)); } }
/// <summary> /// Ensures the schema. /// </summary> protected virtual void EnsureSchema() { var phunDataSchema = string.Format( @"CREATE TABLE {0}Data( IdString varchar(38) NOT NULL PRIMARY KEY, Host varchar(200) NOT NULL, Path varchar(250) NOT NULL, Data bytea, DataLength bigint, CreateDate timestamp, CreateBy varchar(50) ) GO CREATE INDEX IX_{0}Data_Host ON {0}Data (Host) GO CREATE INDEX IX_{0}Data_Path ON {0}Data (Path) ", this.TableName); using (var db = new DapperContext(this.ConnectionStringName)) { if (this.DataRepository is SqlDataRepository) { var dataTableExists = db.Query<string>( string.Format( @"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}Data'", this.TableName), null).Any(); if (!dataTableExists) { foreach (var sql in phunDataSchema.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries)) { db.ExecuteSchema(sql); } } } if (db.Query<string>(string.Format(@"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}'", this.TableName), null).Any()) { return; } foreach (var sql in this.SchemaSql.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries)) { db.ExecuteSchema(sql); } } }