1
1
mirror of https://github.com/dbcli/pgcli.git synced 2024-10-04 01:08:51 +03:00
Commit Graph

104 Commits

Author SHA1 Message Date
Chris Rose
b979180621
Add --ping as a CLI option (#1471)
* Add `--ping` as a CLI option

This builds in the functionality asked for in #1470; it allows pgcli to
replace `pg_isready` from the postgresql command line toolchain

* Update the changelog and AUTHORS

* Use click.echo

pgcli.echo doesn't seem to actually _echo_ anything

* Add integ tests for the ping feature

* Refactor try / else

Co-authored-by: Damien Baty <damien@damienbaty.com>

* Unused variable

---------

Co-authored-by: Irina Truong <637013+j-bennet@users.noreply.github.com>
Co-authored-by: Damien Baty <damien@damienbaty.com>
2024-06-19 21:45:50 -07:00
saucoide
ce7f76a676
Add --log-file & \log-file option to always capture output (#1461)
* Add --log-file & \log-file option to always capture output

Currently outputting to a file via \o disables the console output
This patch adds a `--log-file` cli arg with similar behavior to `psql`* and a \log-file
special command to enable/disable it from the console

*https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-OPTION-LOG-FILE

* switch to use context manager

Co-authored-by: Irina Truong <637013+j-bennet@users.noreply.github.com>

* switch to use context manager

Co-authored-by: Irina Truong <637013+j-bennet@users.noreply.github.com>

* use isoformat explicitly

Co-authored-by: Irina Truong <637013+j-bennet@users.noreply.github.com>

* change test to use a mock, update changelog & authors

* reformat

* black

---------

Co-authored-by: Irina Truong <637013+j-bennet@users.noreply.github.com>
2024-04-30 19:03:31 -07:00
Andrew
a7a70fdc92
Echo notifications (#1385)
* Echo notifications

* Blackify

* Clean up a bit

* Add test

* Blackify

* Update changelog

* Fix tests
2024-03-23 13:24:40 -07:00
Antonio
e2ff38d170
Support PGAPPNAME (#1444)
The application_name to be used when connecting to a database can now be
specified as a command line argument (--application-name) or be taken
directly from environment variables (PGAPPNAME). It still defaults to
'pgcli' when not specified.

Closes #1421.
2023-12-08 20:21:28 -08:00
Hollis Wu
89979a9353
Fix changelog date (#1438)
* Fix changelog date

* Add my name to authors
2023-11-08 17:07:21 -08:00
Sharon Yogev
0ad3393fa8
confirm_destructive_query: Use confirm rather than prompt (#1410)
* confirm_destructive_query: Use confirm rather than prompt

* Fix tests
2023-10-18 09:25:29 -07:00
Rob Berry
97a1fd6c16
Allow defining a json file with preferred aliases (#1382)
* fix psycopg.sql.Identifier in \ev handling (#1384)

* Allow defining a json file with preferred aliases

At $WORK we have a lot of tables with names like `foo_noun_verb` or
`foo_noun_related-noun_verb` and so while the default aliasing is very
helpful for shortening unwieldy names we do end up with lots of aliases
like `LEFT JOIN fnv on fnv2.id = fnv.fnv2_id`

This change will allow defining a json file of preferred aliases

```
> cat ~/.config/pgcli/aliases.json
{
    "foo_user": "user",
    "foo_user_group": "user_group"
}
```

so the alias suggestion for `SELECT * FROM foo_user` will be `SELECT * FROM foo_user AS user`
instead of the default `SELECT * FROM foo_user AS fu`

* When cannot open or parse alias_map_file raise error

Raise a (hopefully) helpful exception when the alias_map_file cannot be
parsed or does not exist

* Add tests for load_alias_map_file

* Add tests for generate_alias

* Update AUTHORS file

* Remove comment.

Discussed this on the PR with a project maintainer

---------

Co-authored-by: Andy Schoenberger <akschoenberger@gmail.com>
Co-authored-by: Rob B <rob@example.com>
Co-authored-by: Irina Truong <i.chernyavska@gmail.com>
2023-10-06 16:13:28 -07:00
blag
ed89c154ee
For Python >= 3.11 directly use packaging to compare package versions (#1416)
* For Python >= 3.11 directly use packaging to compare package versions

* Improve prompt-toolkit check to test for feature explicitly
2023-09-12 12:46:34 -07:00
Damien Baty
f4dc796941 Add config option to require a transaction for destructive statements
When this option is on, any statement that is deemed destructive
(through the use of the `destructive_warning` config option) will
not be executed unless a transaction has been started.
2023-03-08 09:42:43 +01:00
Andy Schoenberger
431c256567
Add config option to not automatically retry connections with operational errors (#1380) 2022-11-11 09:36:41 -08:00
Anna Glasgall
285e62559e
magic: use pgcli.connect_uri instead of connect (#1375)
This makes %pgcli work even if you use non-password (e.g. TLS cert)
authentication
2022-10-27 17:40:19 -07:00
Rodrigo Neri (Rigo)
1726ff5397
Changed destructive_warning to take a list of destructive commands (#1328)
* Changed destructive_warning to take a list of destructive commands and added the dsn_alias as part of the destructive command warning

* Updated parse_destructive_warning to handle None

* Reverted auto formatted change to AUTHORS

* Reverted auto formatted change to AUTHORS
2022-10-13 14:42:22 -07:00
astroshot
c0e1081405
Feature: Add new formatter to export data to sql like mycli (#1366)
* Sub: Add new formatter to export data to sql like mycli

Body: New formatter is added, we can export query result to sql
insertion like mycli

==== End ====

* Sub: Install black and reformat code

Body:

==== End ====

* Sub: Add unit tests for new formatter

Body:

==== End ====

* Sub: Add new formatter to pgclirc
2022-09-14 17:41:40 -07:00
Kian-Meng Ang
d608ffe7c7
Fix typos (#1345)
Co-authored-by: Irina Truong <i.chernyavska@gmail.com>
2022-06-08 11:38:29 -07:00
Daniel Kukula
372da81ec4
add explain visualizer (#1279)
* add explain visualizer

* format files

* remove humanize dependency

* disable by default

* add explain visualizer

* run black
2022-04-03 19:20:02 -07:00
Daniele Varrazzo
25eb9f541b
Add some comments about porting from psycopg 2 to 3 (#1318) 2022-02-22 09:02:16 -08:00
Bruno Inec
ed9d123073
Add SSH tunnel support (#1301)
* Add initial sshtunnel support

* Force CI to rerun.

* Fix unit test for 3.6.

* Black.

Co-authored-by: Irina Truong <i.chernyavska@gmail.com>
2022-02-18 14:57:42 -08:00
Paweł Sacawa
773f69ba43 Modify changelog 2021-05-02 18:27:55 -04:00
ERYoung11
b1bdfa6a43 Updating authors 2021-03-10 13:26:29 -06:00
Miroslav Šedivý
762fb4b8da
Modernize code to Python 3.6+ (#1229)
1. `class A(object)` can be written as `class A:`
2. replace `dict([…])` and `set([…])` with `{…}`
3. use f-strings or compact `.format`
4. use `yield from` instead of `yield` in a `for` loop
5. import `mock` from `unittest`
6. expect `OSError` instead of `IOError` or `select` error
7. use Python3 defaults for file reading or `super()`
8. remove redundant parenthesis (keep those in tuples though)
9. shorten set intersection instead of creating lists
10. backslashes in strings do not have to be escaped if prepended with `r`
2021-02-12 21:34:56 +02:00
Eero Ruohola
87ffae295e
Fix issue where syntax_style config value would not have any effect (#1241)
These config properties got introduced in 41dd24e8 as a means to have
more granular control over the syntax highlighting. The problem is that
these cannot be in the default config file since `get_config()` always
reads both the default config file and the user specified one, and there
is no way to unset these variables in the user specified config file to
restore their default behavior. Even if there would be a way, it
wouldn't be intuitive at all to be required to unset some random
settings under the `[colors]` section just to be able to use the well
documented `syntax_style` setting.

Note that one *can* still set these three lines in their user config
file if they want to utilize them.

Resolves #1212
2021-02-10 15:06:19 -08:00
Kevin Marsh
34d6e080ff
dependencies: add support for sqlparse 0.4.x (#1224) 2020-12-01 16:03:38 -08:00
Jan Brun Rasmussen
352ed41980
Add schema suggestion for functions (#1206)
* Add schema suggestion for functions

- Update sqlcompletion.py
- Update metadata files

* Move autocomletion for function under condition

- Make sure suggestion are only added under drop, alter etc.
2020-09-08 10:02:25 -07:00
Tom Caruso
8f7e314508
Move from humanize to pendulum library for displaying query durations (#1199) 2020-07-28 23:08:19 -07:00
Sky.G.Uieen
41dd24e8da
Add custom color (#1196)
* Updated author, changelog for supporting color of string, number, keyword

* Added string, number, keyword custom color
2020-07-07 20:19:22 -07:00
anthonydb
d492000675 Add info to changelog.rst and AUTHORS 2020-05-26 09:12:42 -04:00
Igor Kim
b994c75701
Update python version from 2.7 to 3.8 in Dockerfile (#1181)
* Update python version from 2.7 to 3.8 in Dockerfile

* Update AUTHORS and changelog.rst
2020-05-11 09:51:23 -07:00
pmav99
bcb0c8bce7
Add support for using pspg as the pager. (#1173)
* Stop printing "status" when table_format is "csv"

* Use the "unix" dialect on *nix for CSV output.

* Use a pager when `pspg` has been configured with CSV "table_format".

Fix #1102
2020-04-23 10:17:40 -07:00
Stephano Paraskeva
936475258d
show_bottom_toolbar - Feature to Show/Hide Toolbar (#1170)
* adds ternary to decide whether bottom_toolbar is shown based on config value

* runs black format

* adds name to authors

* modifies changelog.rst

* removes change in changelog.rst

* formats config

* removes unused variable, adds change to changelog

* changes default back to true

* removed reference to var
2020-04-17 22:58:13 -07:00
g.denis
0f3d4602ef
Fix: Unable to drop previously connected-to database (#1152)
* close connections + added to authors + changelog

* check conn exists
2020-03-12 13:45:59 -07:00
lazydba247
91263c37b9
Add Support for partitioned tables. (#1145)
* partitioned tables: add support

Starting from 9.6+ relkind has new members (more info here: https://www.postgresql.org/docs/12/catalog-pg-class.html)

* Update AUTHORS

* Update changelog.rst

* foreign tables: add support

Starting from 9.6+ relkind has new members (more info here: https://www.postgresql.org/docs/12/catalog-pg-class.html)
2020-02-13 14:24:37 -08:00
George Thomas
77a361966a Fix warning raised for using is not to compare string literal (#1139)
Using `is not` for comparing string literals raises warning that != should be
used.

Fixes #1138
2020-01-14 20:56:07 -08:00
BrownShibaDog
6e4fdd4415 Add line to AUTHORS. 2020-01-01 21:51:16 +09:00
Jonas Jelten
36605174a4 support ansi escape sequences for prompt colors 2019-11-25 22:51:15 +01:00
Martin Matějek
23eb840ad7
Update AUTHORS 2019-10-29 02:59:56 +01:00
Pedro Ferrari
19c3e0eeb8 Add key bindings to consistently move up and down in history (#1084) 2019-07-29 13:00:33 -07:00
Sebastian Janko
f85642da67 Issue 1019 stacktrace on empty query (#1078)
* Added changes to skip empty queries

Empty queries consist of one or more semicolons

* Reformatted with black

* Added contribution to changelog and name to AUTHORS

* Black.
2019-07-12 17:24:39 -07:00
Pablo
6d6ab3dab7 Add keybinding for alt-enter to introduce a line break (#1065)
* Add keybinding for alt-enter to introduce a line break.

* Update changelog.

* Added myself to AUTHORS file

* Fixed quote issue by pre-commit
2019-06-02 19:15:16 -07:00
Alexander Zawadzki
df4dd00585 README.rst: tidy up redundant instructions (#1061)
* README.rst: tidy up redundant instructions 

Remove the README section which detailed how to force `psycopg2` 2.7 dependency installation from source rather than binary.

`psycopg2` 2.7 would automatically favour installation from binary. A bug affecting some users made it desirable to have the option to install from source instead. The README detailed how to do this using pip's `--no-binary` option (nice!).

`psycopg2` 2.8 has now split the binary and source dependencies into different packages with different names (source: [psycopg2 docs](http://initd.org/psycopg/docs/install.html#change-in-binary-packages-between-psycopg-2-7-and-2-8)) which makes the `--no-binary` instructions redundant. To specify source/binary you now need to explicitly specify the desired package.

As of #1060, installing `pgcli` from pip will result in the installation of `psycopg2` 2.8 from source.

* README: additional instructions for psycopg2 2.7 users

Anyone limited to psycopg2 2.7 may still encounter some known issues when installing from binary.
Add a link to the README to acknowledge this, and help those users install it from source.

* Update changelog.rst

* Update AUTHORS

* Update changelog
2019-05-30 10:03:47 -07:00
Telmo "Trooper
8c597751fd Allow psycopg2 up to 2.8.2 (#1060)
* Allow psycopg2 up to 2.8.2

This fixes the issue with pgcli not working on Arch Linux, since the package `python2-psycopg2` is already on 2.8.2.

* Added name to 'AUTHORS' and contribution to 'changelog.rst' referring to #2de6266

* Allow for newer versions of psycopg2 to be used
2019-05-29 21:14:32 -07:00
VVelox
8817017491
Update AUTHORS 2019-05-03 04:22:02 -05:00
zzl
6d1b653e24 lazy load keyring. (#1046)
fix issue: https://github.com/dbcli/pgcli/issues/1041
2019-05-01 08:53:55 -07:00
raylu
eef0e0d65c Allow application_name to be overridden (#1044)
* Allow application_name to be overridden

* Fixed broken link.

* Default password value is empty str?

* Make pep8 happier.
2019-04-27 21:25:19 -06:00
Nathan Vērzemnieks
4af4e33e31 Allow escape to switch to vi navigation mode (#1039) 2019-04-13 13:22:03 -07:00
Irina Truong
c447ffc887 Changelog. 2019-03-04 16:16:47 -08:00
Scott Brenstuhl
1c66dece59 Add reconnect automatically enhancement (#1009)
* Adding reconnect automatically enhancement

* files for pr checklist

* changelog fixes

* setting auto-reconnect to be the default

* fix issue of getting logged queries instead of most recent

* travisci pep8 check issue
2019-02-23 16:37:26 -08:00
ಠ_ಠ
bd0aaefdd2 keybinding for dismissing autocompletelist (#1007)
* +added esc key to dismiss the autocomple list

* +added esc key to dismiss the autocomple list
2019-02-12 16:18:32 -08:00
Marcin Cieślak
ef8aac61c4 Determine hstore OID from the system view (#992)
Avoid error message on the server side if hstore
extension is not installed in the current database.

Issue: https://github.com/dbcli/pgcli/issues/991
2019-01-21 16:00:25 -08:00
Mikhail Elovskikh
f614cef7ed Support multihost connection string (#978)
* Switch to psycopg2 parse_dsn instead of urlparse

* Added wronglink to contributors and updated changelog

* Fix test codestyle

* Support for PGPORT customization in tests

* Support for PGPORT customization in tests

* Refactored PGExecute init and moved short_host generation to object property

* Fix test util codestyle

* Fix local tests run

* Store PGExecute initial params in  _conn_params and added PGExecute.copy method

* Fix codestyle

* Added docstring to PGExecute.copy() method
2019-01-03 14:27:47 -08:00
igncampa
7b03f8e204 allow passing -u flag (lowercase) to specify username (#975)
* added -u flag
2018-11-30 15:21:12 -08:00