コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }