diff options
author | Ondřej Žára <ondras@zarovi.cz> | 2017-03-29 21:25:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-29 21:25:21 +0200 |
commit | 378bb0cf2f773b1f9331d5a44d584f347876e368 (patch) | |
tree | d11e062ea9b7374365f7717a1cfe99262c4f284b /db/postgresql/output.xsl | |
parent | 10a01af0b002e499c428f02e8938954dcb979f74 (diff) | |
parent | bafc8d08d0e1ebc2fff862283041ee50f3d7706a (diff) | |
download | wwwsqldesigner-378bb0cf2f773b1f9331d5a44d584f347876e368.zip wwwsqldesigner-378bb0cf2f773b1f9331d5a44d584f347876e368.tar.gz wwwsqldesigner-378bb0cf2f773b1f9331d5a44d584f347876e368.tar.bz2 |
Merge pull request #251 from devshell/devshell-patch-1
Modify postgreSQL formatting & add web2py backend support
Diffstat (limited to 'db/postgresql/output.xsl')
-rw-r--r-- | db/postgresql/output.xsl | 81 |
1 files changed, 47 insertions, 34 deletions
diff --git a/db/postgresql/output.xsl b/db/postgresql/output.xsl index 4ca7866..39cc978 100644 --- a/db/postgresql/output.xsl +++ b/db/postgresql/output.xsl @@ -26,14 +26,14 @@ <!-- tables --> <xsl:for-each select="table"> - <xsl:text>CREATE TABLE "</xsl:text> + <xsl:text>CREATE TABLE </xsl:text> <xsl:value-of select="@name" /> - <xsl:text>" ( + <xsl:text> ( </xsl:text> <xsl:for-each select="row"> - <xsl:text>"</xsl:text> + <xsl:text> </xsl:text> <xsl:value-of select="@name" /> - <xsl:text>" </xsl:text> + <xsl:text> </xsl:text> <xsl:choose> <xsl:when test="@autoincrement = 1"> @@ -43,23 +43,23 @@ column with nextval(). see: http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-SERIAL --> - <xsl:text> SERIAL</xsl:text> + <xsl:text>SERIAL</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="datatype" /> </xsl:otherwise> </xsl:choose> - <xsl:text> </xsl:text> + <xsl:text></xsl:text> <xsl:if test="@null = 0"> - <xsl:text>NOT NULL </xsl:text> + <xsl:text> NOT NULL</xsl:text> </xsl:if> <xsl:if test="default"> <xsl:if test=" default != 'NULL' "> - <xsl:text>DEFAULT </xsl:text> + <xsl:text> DEFAULT </xsl:text> <xsl:value-of select="default" /> - <xsl:text> </xsl:text> + <xsl:text></xsl:text> </xsl:if> </xsl:if> @@ -75,10 +75,21 @@ </xsl:if> </xsl:for-each> +<xsl:text> +); +</xsl:text> +<xsl:text> + +</xsl:text> <!-- keys --> <xsl:for-each select="key"> - <xsl:text>, -</xsl:text> + <xsl:text>ALTER TABLE </xsl:text> + <xsl:text></xsl:text> + <xsl:value-of select="../@name" /> + <xsl:text> </xsl:text> + <xsl:text>ADD CONSTRAINT </xsl:text> + <xsl:value-of select="../@name" /> + <xsl:text>_pkey </xsl:text> <xsl:choose> <xsl:when test="@type = 'PRIMARY'">PRIMARY KEY (</xsl:when> <xsl:when test="@type = 'UNIQUE'">UNIQUE (</xsl:when> @@ -86,18 +97,38 @@ </xsl:choose> <xsl:for-each select="part"> - <xsl:text>"</xsl:text><xsl:value-of select="." /><xsl:text>"</xsl:text> + <xsl:text></xsl:text><xsl:value-of select="." /><xsl:text></xsl:text> <xsl:if test="not (position() = last())"> <xsl:text>, </xsl:text> </xsl:if> </xsl:for-each> - <xsl:text>)</xsl:text> + <xsl:text>); +</xsl:text> </xsl:for-each> - - <xsl:text> -); + + +<!-- fk --> + <xsl:for-each select="row"> + <xsl:for-each select="relation"> + <xsl:text>ALTER TABLE </xsl:text> + <xsl:value-of select="../../@name" /> + <xsl:text> ADD CONSTRAINT </xsl:text> + <xsl:value-of select="../../@name" /> + <xsl:text>_</xsl:text> + <xsl:value-of select="../@name" /> + <xsl:text>_fkey</xsl:text> + <xsl:text> FOREIGN KEY (</xsl:text> + <xsl:value-of select="../@name" /> + <xsl:text>) REFERENCES </xsl:text> + <xsl:value-of select="@table" /> + <xsl:text>(</xsl:text> + <xsl:value-of select="@row" /> + <xsl:text>); </xsl:text> + </xsl:for-each> + </xsl:for-each> + <xsl:if test="comment"> <xsl:text>COMMENT ON TABLE "</xsl:text> @@ -134,23 +165,5 @@ </xsl:text> </xsl:for-each> -<!-- fk --> - <xsl:for-each select="table"> - <xsl:for-each select="row"> - <xsl:for-each select="relation"> - <xsl:text>ALTER TABLE "</xsl:text> - <xsl:value-of select="../../@name" /> - <xsl:text>" ADD FOREIGN KEY ("</xsl:text> - <xsl:value-of select="../@name" /> - <xsl:text>") REFERENCES "</xsl:text> - <xsl:value-of select="@table" /> - <xsl:text>" ("</xsl:text> - <xsl:value-of select="@row" /> - <xsl:text>"); -</xsl:text> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:template> </xsl:stylesheet> |