Commit Graph

21 Commits

Author SHA1 Message Date
Sam 5f64fd0a21 DEV: remove exec_sql and replace with mini_sql
Introduce new patterns for direct sql that are safe and fast.

MiniSql is not prone to memory bloat that can happen with direct PG usage.
It also has an extremely fast materializer and very a convenient API

- DB.exec(sql, *params) => runs sql returns row count
- DB.query(sql, *params) => runs sql returns usable objects (not a hash)
- DB.query_hash(sql, *params) => runs sql returns an array of hashes
- DB.query_single(sql, *params) => runs sql and returns a flat one dimensional array
- DB.build(sql) => returns a sql builder

See more at: https://github.com/discourse/mini_sql
2018-06-19 16:13:36 +10:00
Sam 24c7d2913b DEV: organise fixture so all drops happen at the end 2018-06-07 15:53:54 +10:00
Sam 6a3c8fe69c FEATURE: protect against accidental column or table drops
Often we need to amend our schema, it is tempting to use
drop_table, rename_column and drop_column to amned schema
trouble though is that existing code that is running in production
can depend on the existance of previous schema leading to application
breaking until new code base is deployed.

The commit enforces new rules to ensure we can never drop tables or
columns in migrations and instead use Migration::ColumnDropper and
Migration::TableDropper to defer drop the db objects
2018-03-21 15:43:32 +11:00
Sam 720e1965e3 FEATURE: add category suppress from latest
In the past we used suppress_from_homepage, it had mixed semantics
it would remove from category list if category list was on home and
unconditionally remove from latest.

New setting explicitly only removes from latest list but leaves the
category list alond
2018-02-22 09:56:35 +11:00
Guo Xiang Tan eb85922083 Revert "Remove unnecessary `SiteSetting.refresh!`."
This reverts commit 4556e95837.
2017-10-12 17:43:58 +08:00
Guo Xiang Tan 4556e95837 Remove unnecessary `SiteSetting.refresh!`.
* It is already `refresh!`ed in our initializer.
2017-10-12 17:15:26 +08:00
Guo Xiang Tan 5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Sam 7a15b44ac3 rename on_remove, on_drop 2017-05-04 14:03:17 -04:00
Sam 6a6eed4ed2 DEV: column dropper class for cleaner removal of superflous columns
Also fixes issues during deploy cause target column was renamed in
theme_fields
2017-05-04 10:15:41 -04:00
Guo Xiang Tan dfc8178308 Revert "FIX: Wait 30 days before dropping the column."
This reverts commit ffc97f2298.

Should be safe now since we didn't get any reports.
2017-01-04 11:56:43 +08:00
Guo Xiang Tan ffc97f2298 FIX: Wait 30 days before dropping the column.
* Regressions from the past is resulting in `logo_url` with
  no uploads record.
2016-12-15 22:45:04 +08:00
Guo Xiang Tan c47b60a1e4 FIX: Check for column that we want to drop instead.
* Otherwise, the migration is called multiple times.
2016-12-15 20:53:10 +08:00
Guo Xiang Tan 53086fdb98 FIX: Drop columns only after app has been deployed with updated code. 2016-12-13 09:10:27 +08:00
Régis Hanol 52b338db62 FIX: category logo & background URLs should not use the CDN 2016-10-25 10:43:57 +02:00
Sam 706624c9fc workaround incorrect uncategorized category id set in site settings 2016-05-30 13:59:58 +10:00
Eyal Levin 94cb0c687b name_lower can't be nil. 2014-08-26 15:25:23 +03:00
Neil Lalonde c6a313d458 Seed categories with capitalized names 2014-07-10 11:28:49 -04:00
Sam 8bf19e244a Don't litter stuff with p statements 2014-05-15 12:19:53 +10:00
Sam a619aa4bbb BUGFIX: initial migrate was broken cause bust schema was cached 2014-05-12 13:31:33 +10:00
Sam 3681f69085 BUGFIX: if users somehow deleted the uncategorized category, it is re-created 2014-01-02 11:08:23 +11:00
Sam 8ad78dcce2 added quick start guide to seeds 2013-12-16 12:46:46 +11:00