public void WriteSchemaObjects(IDocumentSchema schema, StringWriter writer) { var table = StorageTable(); var rules = schema.StoreOptions.DdlRules; table.Write(rules, writer); writer.WriteLine(); writer.WriteLine(); var function = new UpsertFunction(_mapping); function.WriteFunctionSql(rules, writer); _mapping.ForeignKeys.Each(x => { writer.WriteLine(); writer.WriteLine((string)x.ToDDL()); }); _mapping.Indexes.Each(x => { writer.WriteLine(); writer.WriteLine(x.ToDDL()); }); DependentScripts.Each(script => { writer.WriteLine(); writer.WriteLine(); writer.WriteSql(_mapping.DatabaseSchemaName, script); }); writer.WriteLine(); writer.WriteLine(); var template = _mapping.DdlTemplate.IsNotEmpty() ? rules.Templates[_mapping.DdlTemplate.ToLower()] : rules.Templates["default"]; table.WriteTemplate(template, writer); var body = function.ToBody(rules); body.WriteTemplate(template, writer); writer.WriteLine(); writer.WriteLine(); }
public void WriteSchemaObjects(IDocumentSchema schema, StringWriter writer) { var table = StorageTable(); table.Write(writer); writer.WriteLine(); writer.WriteLine(); var function = new UpsertFunction(_mapping); function.WriteFunctionSql(writer); _mapping.ForeignKeys.Each(x => { writer.WriteLine(); writer.WriteLine((string)x.ToDDL()); }); _mapping.Indexes.Each(x => { writer.WriteLine(); writer.WriteLine(x.ToDDL()); }); DependentScripts.Each(script => { writer.WriteLine(); writer.WriteLine(); writer.WriteSql(_mapping.DatabaseSchemaName, script); }); var ownerName = schema.StoreOptions.OwnerName; if (ownerName.IsNotEmpty()) { writer.WriteLine($"ALTER TABLE {_mapping.Table} OWNER TO \"{ownerName}\";"); var functionBody = function.ToBody(); writer.WriteLine(functionBody.ToOwnershipCommand(ownerName)); } writer.WriteLine(); writer.WriteLine(); }