mirror of
https://github.com/dimitri/pgloader.git
synced 2026-05-05 02:46:10 +02:00
Improve handling of errors when fetching the source catalogs.
We might have MS SQL failures at this stage, or even Redshift or other PostgreSQL variants failing to execute our catalog queries. Handle conditions by cleanly logging them and returning from copy-database without doing anything. That's the best we can do here. Fixes #605, fixes #757.
This commit is contained in:
parent
1c18b41cd7
commit
743769d750
@ -319,19 +319,32 @@
|
||||
|
||||
(copy-kernel (make-kernel worker-count))
|
||||
(copy-channel (let ((lp:*kernel* copy-kernel)) (lp:make-channel)))
|
||||
(catalog (fetch-metadata
|
||||
copy
|
||||
(make-catalog
|
||||
:name (typecase (source-db copy)
|
||||
(db-connection (db-name (source-db copy)))
|
||||
(fd-connection (pathname-name
|
||||
(fd-path (source-db copy))))))
|
||||
:materialize-views materialize-views
|
||||
:create-indexes create-indexes
|
||||
:foreign-keys foreign-keys
|
||||
:only-tables only-tables
|
||||
:including including
|
||||
:excluding excluding))
|
||||
(catalog (handler-case
|
||||
(fetch-metadata
|
||||
copy
|
||||
(make-catalog
|
||||
:name (typecase (source-db copy)
|
||||
(db-connection
|
||||
(db-name (source-db copy)))
|
||||
(fd-connection
|
||||
(pathname-name
|
||||
(fd-path (source-db copy))))))
|
||||
:materialize-views materialize-views
|
||||
:create-indexes create-indexes
|
||||
:foreign-keys foreign-keys
|
||||
:only-tables only-tables
|
||||
:including including
|
||||
:excluding excluding)
|
||||
(mssql::mssql-error (e)
|
||||
(log-message :error "MSSQL ERROR: ~a" e)
|
||||
(log-message :log "You might need to review the FreeTDS protocol version in your freetds.conf file, see http://www.freetds.org/userguide/choosingtdsprotocol.htm")
|
||||
(return-from copy-database))
|
||||
(condition (e)
|
||||
(log-message :error
|
||||
"ERROR ~a: ~a"
|
||||
(conn-type (source-db copy))
|
||||
e)
|
||||
(return-from copy-database))))
|
||||
pkeys
|
||||
(writers-count (make-hash-table :size (count-tables catalog)))
|
||||
(max-indexes (when create-indexes
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user