PyCharm 2025.1 Help

Schemas

PyCharm displays schemas that you select to be displayed. It can be useful if you have many schemas. Also, by using this approach, you define which schemas you want to introspect. During introspection, PyCharm loads the metadata from the database and uses this data later.

Schemas ( Schema) can be found in the Database tool window.

Schemas in Database

Create a schema

  1. In the Database tool window (View | Tool Windows | Database) , expand the data source tree until the nodes of databases or schemas.

  2. Right-click the data source, database, or schema node and select New | Schema.

  3. In the Create dialog that opens, enter the name of your schema in the Name field.

  4. In the Preview pane, you can view and change the generated SQL code.

  5. Click OK to add your schema.

the Create schema dialog

Select the default schema

  • You can select the default schema or database by using the list, which is in the upper-right part of the toolbar. When you select the default schema, you can omit the name of that schema or database in your statements.

    Click the <schema> list and select the schema that you need.

    Select the default schema or database

Set the default schema in connection settings

  1. Open data source properties. You can open data source properties by using one of the following options:

    • In the Database tool window (View | Tool Windows | Database) , click the Data Source Properties icon The Data Source Properties icon.

    • Press Shift+Enter.

  2. Select a data source that you want to modify. On the General tab in the Database field, type the name of a schema that you want to use as default.

    Select the default schema or database

Display schemas

Show and hide schemas

  • In the Database tool window (View | Tool Windows | Database) , right-click a data source and navigate to Tools | Manage Shown Schemas. Select or clear checkboxes of schemas that you want to display or hide. Press Enter.

  • Click the N of M link near the data source name. In the database and schema selection window, select or clear checkboxes of schemas that you want to display or hide. Press Enter.

    Show and hide schemas and databases

Use pattern-based filter

To display and introspect all the schemas with names that match a regular expression pattern, do the following:

  1. In the Database tool window (View | Tool Windows | Database) , click the N of M link near the data source name.

  2. In the databases and schemas selector, click the add pattern button near All schemas.

    Pattern-based schema filter
  3. In the new filtering node, define the regular expression. For the syntax, click regex for schemas near the input field. For more information about the syntax, refer to Summary of regular-expression constructs.

    Press Enter to apply the filter in the selector.

    Regular expressions in pattern-based schema filter
  4. Press Enter to apply the filter in Database tool window.

    The filtering node with filter can be added under any node, including another filtering node.

Show all the schemas and databases

  • To display all the available schemas in the Database tool window (View | Tool Windows | Database), click the Show Options Menu button and select the All Namespaces option.

    • Enabled

      Show All Namespaces is enabled
    • Disabled

      Show All Namespaces is disabled

Compare two schemas

For more information about dialog controls, refer to Controls of the Migration dialog.

  1. Select two schemas.

  2. Right-click the selection and navigate to Tools | Compare Structure. Alternatively, press Ctrl+D.

    Compare two schemas

Set the schema search path for PostgreSQL and Redshift

The search_path environment variable in PostgreSQL specifies the order in which schemas are searched. For example, you set the value of search_path to z,a,public, PostgreSQL will look for a value in the z schema. If nothing was not found in the z schema, PostgreSQL looks for the value in the a schema.

In PostgreSQL and Amazon Redshift, the default search path (the path that is set in a database) is used unless you specify a different search path.

  1. Click the <session> list, navigate to the list of database schemas (use the arrow icon the Arrow icon or press the right arrow key).

  2. Select the schema that you want to add to a search path.

    To form a search path, you can use the following actions:

    • Press Space to add a highlighted schema to the search path and to remove a schema from the search path.

    • Press Alt+Up and Alt+Down to reorder the schemas within the search path.

  3. To apply the changes, click OK.

    Control the search path for PostgreSQL and Redshift

Save a search path for PostgreSQL and Redshift between IDE restarts

  1. In the Database tool window (View | Tool Windows | Database) , right-click a PostgreSQL or Amazon Redshift data source and select Properties Shift+Enter.

  2. Click the Options tab.

  3. From the Switch schema list, select Automatic.

  4. Click OK.

    Save a search path between IDE restarts

Force refresh schema information

The Force Refresh action clears the data source information from cache and loads it again from scratch.

  • In the Database tool window (View | Tool Windows | Database) , right-click a data source and select Diagnostics | Force Refresh.

Generate a diagram for a schema

  • In the Database tool window (View | Tool Windows | Database) , right-click a schema and select Diagrams | Show Diagram.

Generate a diagram for a database object

Summary of regular-expression constructs

For full information, refer to Full Java Regular Expressions syntax description and Using Regular Expressions in Java.

Construct

Matches

Characters

x

The character x

\\

The backslash character

\0n

The character with octal value 0n (0 <= n <= 7)

\0nn

The character with octal value 0nn (0 <= n <= 7)

\0mnn

The character with octal value 0mnn (0 <= m <= 3, 0 <= n <= 7)

\xhh

The character with hexadecimal value 0xhh

\uhhhh

The character with hexadecimal value 0xhhhh

\t

The tab character ('\u0009')

\n

The newline (line feed) character ('\u000A')

\r

The carriage-return character ('\u000D')

\f

The form-feed character ('\u000C')

\a

The alert (bell) character ('\u0007')

\e

The escape character ('\u001B')

\cx

The control character corresponding to x

Character classes

[abc]

a, b, or c (simple class)

[^abc]

Any character except a, b, or c (negation)

[a-zA-Z]

a through z or A through Z, inclusive (range)

[a-d[m-p]]

a through d, or m through p: [a-dm-p] (union)

[a-z&&[def]]

d, e, or f (intersection)

[a-z&&[^bc]]

a through z, except for b and c: [ad-z] (subtraction)

[a-z&&[^m-p]]

a through z, and not m through p: [a-lq-z](subtraction)

Predefined character classes

.

Any character (may or may not match line terminators)

\d

A digit: [0-9]

\D

A non-digit: [^0-9]

\s

A whitespace character: [ \t\n\x0B\f\r]

\S

A non-whitespace character: [^\s]

\w

A word character: [a-zA-Z_0-9]

\W

A non-word character: [^\w]

POSIX character classes (US-ASCII only)

\p{Lower}

A lower-case alphabetic character: [a-z]

\p{Upper}

An upper-case alphabetic character:[A-Z]

\p{ASCII}

All ASCII:[\x00-\x7F]

\p{Alpha}

An alphabetic character:[\p{Lower}\p{Upper}]

\p{Digit}

A decimal digit: [0-9]

\p{Alnum}

An alphanumeric character:[\p{Alpha}\p{Digit}]

\p{Punct}

Punctuation: One of !"#$%&'()*+,-./:;=>?@[\]^_`{|}~

\p{Graph}

A visible character: [\p{Alnum}\p{Punct}]

\p{Print}

A printable character: [\p{Graph}\x20]

\p{Blank}

A space or a tab: [ \t]

\p{Cntrl}

A control character: [\x00-\x1F\x7F]

\p{XDigit}

A hexadecimal digit: [0-9a-fA-F]

\p{Space}

A whitespace character: [ \t\n\x0B\f\r]

java.lang.Character classes (simple java character type)

\p{javaLowerCase}

Equivalent to java.lang.Character.isLowerCase()

\p{javaUpperCase}

Equivalent to java.lang.Character.isUpperCase()

\p{javaWhitespace}

Equivalent to java.lang.Character.isWhitespace()

\p{javaMirrored}

Equivalent to java.lang.Character.isMirrored()

Classes for Unicode blocks and categories

\p{InGreek}

A character in the Greek block (simple block)

\p{Lu}

An uppercase letter (simple category)

\p{Sc}

A currency symbol

\P{InGreek}

Any character except one in the Greek block (negation)

[\p{L}&&[^\p{Lu}]]

Any letter except an uppercase letter (subtraction)

Boundary matchers

^

The beginning of a line

$

The end of a line

\b

A word boundary

\B

A non-word boundary

\A

The beginning of the input

\G

The end of the previous match

\Z

The end of the input but for the final terminator, if any

\z

The end of the input

Greedy quantifiers

X?

X, once or not at all

X*

X, zero or more times

X+

X, one or more times

X{n}

X, exactly n times

X{n,}

X, at least n times

X{n,m}

X, at least n but not more than m times

Reluctant quantifiers

X??

X, once or not at all

X*?

X, zero or more times

X+?

X, one or more times

X{n}?

X, exactly n times

X{n,}?

X, at least n times

X{n,m}?

X, at least n but not more than m times

Possessive quantifiers

X?+

X, once or not at all

X*+

X, zero or more times

X++

X, one or more times

X{n}+

X, exactly n times

X{n,}+

X, at least n times

X{n,m}+

X, at least n but not more than m times

Logical operators

XY

X followed by Y

X|Y

Either X or Y

(X)

X, as a capturing group

Back references

\n

Whatever the nth capturing group matched

Quotation

\

Nothing, but quotes the following character

\Q

Nothing, but quotes all characters until \E

\E

Nothing, but ends quoting started by \Q

Special constructs (non-capturing)

(?:X)

X, as a non-capturing group

(?idmsux-idmsux)

Nothing, but turns match flags on - off

(?idmsux-idmsux:X)

X, as a non-capturing group with the given flags on - off

(?=X)

X, via zero-width positive lookahead

(?!X)

X, via zero-width negative lookahead

(?<=X)

X, via zero-width positive lookbehind

(?<!X)

X, via zero-width negative lookbehind

(?>X)

X, as an independent, non-capturing group

Last modified: 07 April 2025