September 26, 2024: PostgreSQL 17 Released!

pg_timetable v4 is out!

Posted on 2021-07-29 by CYBERTEC PostgreSQL International GmbH
Related Open Source

Our team is proud to introduce new major pg_timetable v4 with the new documentation, configuration file support, reimplemented logging machinery, job and task timeouts support, new CopyFromFile built-in functionality, and many more!

Please, use our new detailed manual to know more about new features and settings.

Download

You're welcome to download the pg_timetable v4 right now at: https://github.com/cybertec-postgresql/pg_timetable/releases

Feedback

Please don't hesitate to ask any questions, to report bugs, to star pg_timetable project and to tell the world about it.

Changelog ๐Ÿ’”๐ŸŒ„๐Ÿงช

  • [!] add configuration file support with Viper, closes #177 bebab44
  • [!] add CopyFromFile built-in task f87d6fc
  • [!] add Readthedocs documentation (#254) 004b31f
  • [!] merge timetable.command table with timetable.task, closes #261 8604b18
  • [!] reimplement logging, closes #158 (#231) 4313948
  • [!] remove jmoiron/sqlx and DATA-DOG/go-sqlmock dependencies, closes #187 #202 6542b71
  • [!] remove old migrations and start from scratch, closes #258 020563d
  • [!] rewrite cron handling from scratch 35a8cc8 fbfbfb2
  • [!] rewrite pgengine and scheduler without global variables as classes fa37167
  • [!] use Go 1.16 to build releases 729ef31
  • [!] use new consistent terminology: command -> task -> chain f59fdda
  • [+] add $PGTT_CLIENTNAME env var 31faae6
  • [+] add --cronworkers and --intervalworkers options under "Resource" group 91f5c0e
  • [+] add .pgpass support, closes #247 d3a317f
  • [+] add --chain-timeout command-line parameter, closes #270 7f27a50
  • [+] add --log-database-level command-line parameter, closes #274 338c28c
  • [+] add --task-timeout command line parameter 80428a7
  • [+] add all release badge 0b1ae61
  • [+] add chain timeout, closes #267 05b9736
  • [+] add config.example.yaml file bebab44
  • [+] add config_test 5df8386
  • [+] add database comments for objects f59fdda
  • [+] add docs badge e325ff5
  • [+] add high load skip timeout to LogHook 0513ba8
  • [+] add log hook for PostgreSQL using COPY machinery 93d51cc
  • [+] add LogHook tests 0513ba8
  • [+] add output for built-in and SQL tasks to the timetable.execution_log, closes #185 (#224) 681caf3
  • [+] add pgengine.NewDB function 330cb62
  • [+] add pgxpoolIface 33fa7a4
  • [+] add support for logging to file, closes #272 6a73a80
  • [+] add supported cloud environments to the readme, #256 70c9f49
  • [+] add supported PostgreSQL versions and operating systems to the readme, closes #256 5695742
  • [+] add task timeout, closes #271 80428a7
  • [+] add TASK_STARTED and TASK_DONE statuses, rename STARTED to CHAIN_STARTED 660e32b
  • [+] add TestMigratorOptions() and increase TestMigrateTxError() coverage 466c909
  • [+] add TestSchedulerExclusiveLocking() 08e7ff9
  • [+] add TestSelectChains() 3696f01
  • [+] add time zone information to the manual 77c0237
  • [+] add version number to all release files, closes #228 cf72721
  • [+] allow specify content-type for SendMail built-in task, closes #225 (#226) 100bedd
  • [+] bump github.com/pashagolub/pgxmock 1.2.0 af98bfd
  • [+] bump github.com/spf13/viper to 1.8.1 e7b30fd
  • [+] bump jackc/pgconn version to 1.9.0 7f2d671
  • [+] bump jackc/pgtype version to 1.8.0 7f2d671
  • [+] bump jackc/pgx version to 4.12.0 7f2d671
  • [+] bump jessevdk/go-flags version to 1.5.0 7f2d671
  • [*] bump georgysavva/scany to 0.2.9 c1f9529
  • [+] create Dependabot config file 37729d7
  • [+] delete only succeeded self-destructive chains, closes #265 613a945
  • [+] increase TestMigrations() coverage 975d68c
  • [+] Increase v4 tests coverage (#222) 9689e50
  • [+] insert run status immediately during max_instance check, closes #223 5765662
  • [+] introduce PgxIface, PgxConnIface, PgxPoolIface b028eaa
  • [+] move cache settings to LogHook 0513ba8
  • [+] set client name during LogHook creation 0513ba8
  • [+] specify password for tests explicitly 524046f
  • [+] use //go:embed for migration .sql files aaee11d
  • [+] use //go:embed for pgengine .sql files b453937
  • [+] use retcode and deferred functions instead of os.Exit() 7a1cdfa
  • [*] change "--port" command-line option type to integer bebab44
  • [*] decrease run_status rows usage by using only task-related information 660e32b
  • [*] improve and rename get_running_jobs() to get_chain_running_statuses() 7a1cdfa
  • [*] improve TestExecuteSQLTask() 396cc88
  • [*] improve timetable.run_status table 7a1cdfa
  • [*] make go test fail fast in the build action 35a8cc8
  • [*] make pgengine.NewDB() and config.NewCmdOptions() use variadic string params 524046f
  • [*] move health_check() function to job_functions.sql 7a1cdfa
  • [*] move Logger to appropriate file b5bcece
  • [*] move PgURL parsing to the pgengine bebab44
  • [*] move SetupCloseHandler to main.go 7a1cdfa
  • [*] remove sensitive information from logs, closes #286 aba954d
  • [*] remove unused chain.excluded_execution_configs column f59fdda
  • [*] remove unused PgEngine.CanProceedChainExecution() 4cf2323
  • [*] remove unused timetable.trig_chain_fixer(), closes #255 5b033d7
  • [*] rename pgengine.UpdateChainRunStatus to AddChainRunStatus 660e32b
  • [*] rename rus_status.current_execution_element column to command_id 660e32b
  • [*] replace "--verbose" command-line option with "--loglevel" bebab44
  • [*] return immediately from pgengine.CanProceedChainExecution if context expired 34946b8
  • [*] simplify pgengine.CanProceedChainExecution() function 7a1cdfa
  • [*] simplify readme.md, #256 b7cc5bf
  • [*] split options into groups: Connection, Logging, Start, etc. bebab44
  • [*] store remote database connection strings in chain table directly, closes #234 20f28f8
  • [*] support alpha-beta strings in tag name for Release action e7318a8
  • [*] switch to ory/mail from abandoned gomail, closes #248 21858fd
  • [*] update Golang version used in Github Actions 944b903
  • [*] update latest release badge by including pre-releases 8645ee0
  • [*] use channel for error instead of variable 0513ba8
  • [*] use dashes in long command-line parameters names 6a73a80
  • [*] uses error log level during tests by default 524046f
  • [-] fix 'date/time field value out of range' error in next_run(), fixes #237 35a8cc8
  • [-] fix --pgurl ignored during connection, closes #252 5d771df
  • [-] fix empty long dash separated command-line parameters, fixes #279 4e8016f
  • [-] fix ErrNoRows check in CanProceedChainExecution() f0701c4
  • [-] fix SelectChain() 8b802c3
  • [-] remove database/sql from import eeb3eb4
  • [-] remove STRICT option from add_job() function, fixes #291 2eff73a
  • [-] remove unneeded logging CheckNeedMigrateDb() function f59fdda