DataGrip does not add replace keyword when extracting DDL

Answered

With Oracle 12c and DataGrip 2017.3, I see the following issue. When generating a DDL script for Views and Packages, it omits replace keyword. e.g. it prints:

"create view my_view" instead of "create or replace my_view."

This leads to an error when I try to re-create the view object. I have to add replace keyword manually.

8 comments
Comment actions Permalink

Hi,

What action do you invoke to generate DDL?

It's recommended to use SQL Generator to specify proper create options:




Thank you.

0
Comment actions Permalink

Hi Vasily,

I tried SQL Generator as well, the same result. No replace keyword is added.

1
Comment actions Permalink

I have the same problem.

Doesnt matter what i use it won't create or replace function.

 

Using Datagrip 2018.1 and Postgresql 10.2

1
Comment actions Permalink

@ Indrek Kalluste & @Nurlan Nurmanov 
There is an issue in SQL Generator in DG 2018.1 EAP 2. I'll be fixed in the next EAP.

0
Comment actions Permalink

SQL Generator works OK for now, but it is not an everyday solution. Editing of stored procedures is too complex: I need to 1. "jump to editor" (double-click or F4), 2. "SQL scripts - SQL generator" (Ctrl+Alt+G), 3. copy result to clipboard, 4. Ctrl+A in editor, 5. Ctrl+V.

I am writing DB procedures all the days, and 5 (!) steps for such simple action...

Note: "Generate DDL to clipboard" still returns "create ..." instead of "create or replace". "Generate DDL to console" opens console with right script, but you have to delete each console after use, plus default hotkey (Ctrl+Shift+Alt+B) for this is too complex and does not work on my linux with 2 keyboard layouts switched by Alt+Shift.

I just have installed the DataGrip, so I can misunderstand many things - sorry for it. But in this case you can think about accessibility of the DataGrip for new users (I used pgAdmin III previously).

P.S.: I still love JetBrains products, good work!

1
Comment actions Permalink

@Nea14e

First of all, you need to update to the latest DataGrip EAP since there were some issues with generator options.

To change default hotkey you need to go to Keymap settings and change it:


In case you invoke "Generate DDL to Console" it generates DDL with "create... if not exists" and "create or replaced" options enabled:

 

Will it be helpful for you?

 

0
Comment actions Permalink

@vasily chernov

Thanks for help.

1. I know how to change keymap, question is that default keymap is too complex.

2. Using "Generate DDL to Console" is a workaround, isn't it? It is very contr-intuitive that basic commands to view function code do not support function editing (when "or replace" is omitted, it leads to such heavy consequences). Is your team working on the solution?

2
Comment actions Permalink

@Nea14e 
Yes, we've got plans to improve flow with code generations. There is an issue https://youtrack.jetbrains.com/issue/DBE-6160 to track progress and vote for.

0

Please sign in to leave a comment.