Skip to main content

It looks like DDL is generated from ERDs for MySQL Oracle PostgreSQL and SQL Server.

Do you plan to support Snowflake and Redshift?

Hey Jooyoung thanks for posting! Unfortunately this is not on our roadmap at this time. However we're always looking for ways to improve Lucidchart. Would you mind adding your idea to product feedback area of the community? Ideas submitted there are passed on to the product development team for their consideration. Thanks again for your feedback and I apologize for any inconvenience this causes you.


@jooyoung s

I know this is approximately a year late but I've been using something like the below for snowflake. It's also fairly common to *not* have references / constraints defined in a cloud data warehouse so don't consider it too much of a loss. YMMV though.

Just change the database / warehouse variables download the csv and then import to lucid ERDs as "postgresql"


use database MY_DATABASE;
use warehouse MY_WAREHOUSE;

SELECT
'postgresql' AS dbms
t.table_catalog
t.table_schema
t.table_name
c.column_name
c.ordinal_position
c.data_type
c.character_maximum_length
null as constraint_type
null as "k2.table_schema"
null as "k2.table_name"
null as "k2.column_name"
FROM
information_schema.COLUMNS c
left join information_schema.TABLES t on
t.TABLE_CATALOG = c.TABLE_CATALOG AND
t.TABLE_SCHEMA = c.TABLE_SCHEMA AND
t.TABLE_NAME = c.TABLE_NAME

WHERE t.table_type='BASE TABLE'
AND t.table_schema NOT IN('information_schema');

@goley Thanks for contributing to this thread and sharing your knowledge with the rest of the Lucidchart community!


So has ERD to DDL been put on the roadmap?  I'm just getting to know your product for ERD development but this is a big gap for those of us looking for more reasonably priced alternatives to Erwin and ERStudio.  A collateral improvement would be the ability to lay in much more data about the actual connectors elements such as rolename explicit cardinality and explicit distinction between identifying and non-identifying relations.


Hi Don

Thanks for posting your thoughts and feedback in the Community. Unfortunately I can't comment on the exact status of this feature on our roadmap but I can recommend checking out our Monthly Community News Posts to keep tabs on upcoming features and new updates.

If you'd like to share your thoughts in the product feedback area of the community - there you can detail these features you're looking for and help our development team better understand your needs! The number of submissions for each feature helps our development team know what to prioritize. 

Thank you for your feedback! Let me know if you have any additional questions.


@jooyoung s

I know this is approximately a year late but I've been using something like the below for snowflake. It's also fairly common to *not* have references / constraints defined in a cloud data warehouse so don't consider it too much of a loss. YMMV though.

Just change the database / warehouse variables download the csv and then import to lucid ERDs as "postgresql"
 

use database MY_DATABASE;use warehouse MY_WAREHOUSE;SELECT    'postgresql' AS dbms    t.table_catalog    t.table_schema    t.table_name    c.column_name    c.ordinal_position    c.data_type    c.character_maximum_length    null as constraint_type    null as "k2.table_schema"    null as "k2.table_name"    null as "k2.column_name"FROM    information_schema.COLUMNS c    left join information_schema.TABLES t on        t.TABLE_CATALOG = c.TABLE_CATALOG AND        t.TABLE_SCHEMA = c.TABLE_SCHEMA AND        t.TABLE_NAME = c.TABLE_NAMEWHERE t.table_type='BASE TABLE'  AND t.table_schema NOT IN('information_schema');

Hi,

I’ve tried running the SQL above in the Snowflake Cloud IDE, however it is throwing an error:

“Syntax error: unexpected ‘t’. (line 6)”

The code I ran was as follows:

use database DATA_WAREHOUSE_DEV;

use warehouse PROD_FIVETRAN_WH;

SELECT

    'postgresql' AS dbms

    t.table_catalog

    t.table_schema

    t.table_name

    c.column_name

    c.ordinal_position

    c.data_type

    c.character_maximum_length

    null as constraint_type

    null as "k2.table_schema"

    null as "k2.table_name"

    null as "k2.column_name"

FROM

    information_schema.COLUMNS c

    left join information_schema.TABLES t on

        t.TABLE_CATALOG = c.TABLE_CATALOG AND

        t.TABLE_SCHEMA = c.TABLE_SCHEMA AND

        t.TABLE_NAME = c.TABLE_NAME

WHERE t.table_type='BASE TABLE'

  AND t.table_schema NOT IN('information_schema');

 

Please could you advise where I am going wrong?

Best wishes,

James


@jooyoung s

I know this is approximately a year late but I've been using something like the below for snowflake. It's also fairly common to *not* have references / constraints defined in a cloud data warehouse so don't consider it too much of a loss. YMMV though.

Just change the database / warehouse variables download the csv and then import to lucid ERDs as "postgresql"
 

use database MY_DATABASE;use warehouse MY_WAREHOUSE;SELECT    'postgresql' AS dbms    t.table_catalog    t.table_schema    t.table_name    c.column_name    c.ordinal_position    c.data_type    c.character_maximum_length    null as constraint_type    null as "k2.table_schema"    null as "k2.table_name"    null as "k2.column_name"FROM    information_schema.COLUMNS c    left join information_schema.TABLES t on        t.TABLE_CATALOG = c.TABLE_CATALOG AND        t.TABLE_SCHEMA = c.TABLE_SCHEMA AND        t.TABLE_NAME = c.TABLE_NAMEWHERE t.table_type='BASE TABLE'  AND t.table_schema NOT IN('information_schema');

Hi,

I’ve tried running the SQL above in the Snowflake Cloud IDE, however it is throwing an error:

“Syntax error: unexpected ‘t’. (line 6)”

The code I ran was as follows:

use database DATA_WAREHOUSE_DEV; use warehouse PROD_FIVETRAN_WH;

SELECT     'postgresql' AS dbms     t.table_catalog     t.table_schema     t.table_name     c.column_name     c.ordinal_position     c.data_type     c.character_maximum_length     null as constraint_type     null as "k2.table_schema"     null as "k2.table_name"     null as "k2.column_name" FROM     information_schema.COLUMNS c     left join information_schema.TABLES t on         t.TABLE_CATALOG = c.TABLE_CATALOG AND         t.TABLE_SCHEMA = c.TABLE_SCHEMA AND         t.TABLE_NAME = c.TABLE_NAME

WHERE t.table_type='BASE TABLE'   AND t.table_schema NOT IN('information_schema');

 

Please could you advise where I am going wrong?

Best wishes,

James

 

Hi,

I’ve fixed it!

Was missing commas in the SELECT statement :-)

Cheers,

James


Hi @james.cooper

Thank you for the reply and apologies for the delay! I’m glad you were able to resolve the issue. Please let us know if you need assistance with anything else!


Reply