Skip to content

Latest commit

 

History

History
254 lines (166 loc) · 7.96 KB

CHANGELOG.md

File metadata and controls

254 lines (166 loc) · 7.96 KB

3.5.5 (Jan, 2022)

  • Fix error where from Config shadowing which would cause LHM to abort on reconnect (Shopify#128)

3.5.4 (Dec, 2021)

  • Refactored the way options are handled internally. Code is now much clearer to understand
  • Removed optional connection_options from Lhm.setup and Lhm.connection
  • Option reconnect_with_consistent_host will now be provided with options for Lhm.change_table

3.5.3 (Dec, 2021)

  • Adds ProxySQL comments at the end of query to accommodate for internal tool's requirements

3.5.2 (Dec, 2021)

  • Fixed error on undefined connection, when calling Lhm.connection without calling Lhm.setup first
  • Changed Lhm.connection.connection to lhm.connection.ar_connection for increased clarity and readability

3.5.1 (Dec , 2021)

  • Add better logging to the LHM components (Shopify#112)
  • Slave lag throttler now supports ActiveRecord > 6.0
  • [Dev] Add Appraisals to test against multiple version

3.5.0 (Dec , 2021)

  • Duplicate of 3.4.2 (unfortunate mistake)

3.4.2 (Sept, 2021)

3.4.1 (Sep 22, 2021)

  • Add better logging to the LHM components (Shopify#108)

3.4.0 (Jul 19, 2021)

  • Log or raise on unexpected duplicated entry warnings during INSERT IGNORE (Shopify#100)

3.3.6 (Jul 7, 2021)

  • Add lhm-shopify.rb to require lhm

3.3.5 (Jul 5, 2021)

  • Add comment and collate copying to rename_column
  • Publish to rubygems

3.3.4 (Feb 9, 2021)

  • Run migrations inline in local/CI environment

3.3.3 (Nov 20, 2020)

  • Add test for tables with composite primary keys.
  • Add test for migrating to a composite primary key.
  • Tests updated to work on MacOS Catalina
  • LHM will now print exceptions to @printer if @printer responds to :exception
  • New ThreadsRunning throttler uses MySQL Performance Schema to decide whether to throttle

3.3.2 (not fully released)

  • Catch even more MySQL errors by default with SqlRetry.

3.3.1 (Nov 8, 2019)

  • Ensure that :retriable configuration is correctly passed to all SqlRetry instances.
  • Retry Chunker#upper_id and options[:verifier] on MySQL failure.
  • Catch more MySQL errors by default with SqlRetry.

3.3.0 (Oct 21, 2019)

  • Add a :verifier key to the options hash, with a default implementation which aborts the LHM if the triggers are removed.

3.2.5 (Jun 24, 2019)

  • Tighten dependency on retriable gem and remove workarounds for old version

3.2.4 (Oct 16, 2018)

  • Retry Cleanup::Current just like we retry all the other DDLs.

3.2.3 (Oct 16, 2018)

  • Add ActiveRecord::QueryTimedout exception class to be retried on "Timeout waiting for a response from the last query" message.

3.2.2 (Oct 11, 2018)

  • Try to take a higher lock_wait_timeout value than others (Shopify#60)

3.2.1 (Oct 11, 2018)

3.2.0 (Sep 4, 2018)

  • Fix Slave lag throttler database config (Shopify#55)
  • Loosen dependency on retriable gem (Shopify#54)
  • Overhaul retries for deadlocks, wait timeouts on Chunker, Entangler, and AtomicSwitcher (Shopify#51)

3.1.1

  • Cleanup tables between tests (Shopify#48)
  • Ensure all table names are less than 64 characters (Shopify#49)

3.1.0

  • Unify Entangler and AtomicSwitcher retry interface (Shopify#39)
  • Remove scripts replaced by dbdeployer (Shopify#40)
  • Rename lhmn_ tables to lhma_ to avoid IBP stalls (Shopify#41)

3.0.0

  • Drop support for throttle and stride options. Use throttler, instead:
Lhm.change_table :users, throttler: [:time_throttler, {stride: x}] do
end
  • #118 - Truncate long trigger names. (@sj26)
  • #114 - Update chunker requirements (@bjk-soundcloud)
  • #98 - Add slave lag throttler. (@camilo, @jasonhl)
  • #92 - Fix check for table requirement before starting a lhm.(@hannestyden)
  • #93 - Makes the atomic switcher retry on metadata locks (@camilo)
  • #63 - Sets the LHM's session lock wait timeout variables (@camilo)
  • #75 - Remove DataMapper and ActiveRecord 2.x support (@camilo)

2.2.0 (Jan 16, 2015)

  • #84 - Require index names to be strings or symbols (Thibaut)
  • #39 - Adding the ability to rename columns (erikogan)
  • #67 - Allow for optional time filter on .cleanup (joelr)

2.1.0 (July 31, 2014)

  • #48 - Add percentage output for migrations (@arthurnn)
  • #60 - Quote table names (@spickermann)
  • #59 - Escape table name in select_limit and select_start methods (@stevehodgkiss)
  • #57 - Ensure chunking 'where' clause handled separately (@rentalcustard)
  • #54 - Chunker handle stride changes (@rentalcustard)
  • #52 - Implement ability to control timeout and stride from Throttler (@edmundsalvacion)
  • #51 - Ensure Lhm.cleanup removes temporary triggers (@edmundsalvacion)
  • #46 - Allow custom throttler (@arthurnn)

2.0.0 (July 10, 2013)

  • #44 - Conditional migrations (@durran)

1.3.0 (May 28, 2013)

  • Add Lhm.cleanup method for removing copy tables, thanks @bogdan
  • Limit copy table names to 64 characters, thanks @charliesome

1.2.0 (February 22, 2013)

  • Added DataMapper support, no API changes for current users. Refer to the README for information.
  • Documentation updates. Thanks @tiegz and @vinbarnes.

1.1.0 (April 29, 2012)

  • Add option to specify custom index name
  • Add mysql2 compatibility
  • Add AtomicSwitcher

1.0.3 (February 23, 2012)

  • Improve change_column

1.0.2 (February 17, 2012)

  • closes soundcloud#11 this critical bug could cause data loss. table parser was replaced with an implementation that reads directly from information_schema.

1.0.1 (February 09, 2012)

  • released to rubygems

1.0.0 (February 09, 2012)

  • added change_column
  • final 1.0 release

1.0.0.rc8 (February 09, 2012)

  • removed spec binaries from gem bins

1.0.0.rc7 (January 31, 2012)

  • added SqlHelper.annotation into the middle of trigger statements. this is for the benefit of the killer script which should not kill trigger statements.

1.0.0.rc6 (January 30, 2012)

  • added --confirm to kill script; fixes to kill script

1.0.0.rc5 (January 30, 2012)

  • moved scripts into bin, renamed, added to gem binaries

1.0.0.rc4 (January 29, 2012)

  • added '-- lhm' to the end of statements for more visibility

1.0.0.rc3 (January 19, 2012)

  • Speedup migrations for tables with large minimum id
  • Add a bit yard documentation
  • Fix issues with index creation on reserved column names
  • Improve error handling
  • Add tests for replication
  • Rename public API method from hadron_change_table to change_table
  • Add tests for ActiveRecord 2.3 and 3.1 compatibility

1.0.0.rc2 (January 18, 2012)

  • Speedup migrations for tables with large ids
  • Fix conversion of milliseconds to seconds
  • Fix handling of sql errors
  • Add helper to create unique index
  • Allow index creation on prefix of column
  • Quote column names on index creation
  • Remove ambiguous method signature
  • Documentation fix
  • 1.8.7 compatibility

1.0.0.rc1 (January 15, 2012)

  • rewrite.

0.2.1 (November 26, 2011)

  • Include changelog in gem

0.2.0 (November 26, 2011)

  • Add Ruby 1.8 compatibility
  • Setup travis continuous integration
  • Fix record lose issue
  • Fix and speed up specs

0.1.4

0.1.3

0.1.2

  • Initial Release