mirror of
https://github.com/jbranchaud/til
synced 2026-01-21 07:58:02 +00:00
Compare commits
1 Commits
56c2910252
...
29dda73025
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29dda73025 |
12
.vimrc
12
.vimrc
@@ -9,15 +9,3 @@ function! CountTILs()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
nnoremap <leader>c :call CountTILs()<cr>
|
nnoremap <leader>c :call CountTILs()<cr>
|
||||||
|
|
||||||
augroup DisableMarkdownFormattingForTILReadme
|
|
||||||
autocmd!
|
|
||||||
autocmd BufRead ~/code/til/README.md autocmd! Format
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
" local til_readme_group = vim.api.nvim_create_augroup('DisableMarkdownFormattingForTILReadme', { clear = true })
|
|
||||||
" vim.api.nvim_create_autocmd('BufRead', {
|
|
||||||
" command = 'autocmd! Format',
|
|
||||||
" group = til_readme_group,
|
|
||||||
" pattern = vim.fn.expand '~/code/til/README.md',
|
|
||||||
" })
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1512 TILs and counting..._
|
_1511 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1020,7 +1020,6 @@ _1512 TILs and counting..._
|
|||||||
- [Serialize With fast_jsonapi In A Rails App](rails/serialize-with-fast-jsonapi-in-a-rails-app.md)
|
- [Serialize With fast_jsonapi In A Rails App](rails/serialize-with-fast-jsonapi-in-a-rails-app.md)
|
||||||
- [Set A Timestamp Field To The Current Time](rails/set-a-timestamp-field-to-the-current-time.md)
|
- [Set A Timestamp Field To The Current Time](rails/set-a-timestamp-field-to-the-current-time.md)
|
||||||
- [Set DateTime To Include Time Zone In Migrations](rails/set-datetime-to-include-time-zone-in-migrations.md)
|
- [Set DateTime To Include Time Zone In Migrations](rails/set-datetime-to-include-time-zone-in-migrations.md)
|
||||||
- [Set Default As SQL Function In Migration](rails/set-default-as-sql-function-in-migration.md)
|
|
||||||
- [Set default_url_options For Entire Application](rails/set-default-url-options-for-entire-application.md)
|
- [Set default_url_options For Entire Application](rails/set-default-url-options-for-entire-application.md)
|
||||||
- [Set Schema Search Path](rails/set-schema-search-path.md)
|
- [Set Schema Search Path](rails/set-schema-search-path.md)
|
||||||
- [Set Statement Timeout For All Postgres Connections](rails/set-statement-timeout-for-all-postgres-connections.md)
|
- [Set Statement Timeout For All Postgres Connections](rails/set-statement-timeout-for-all-postgres-connections.md)
|
||||||
|
|||||||
@@ -4,9 +4,7 @@ PostgreSQL's `between` construct allows you to make a comparison _between_
|
|||||||
two values (numbers, timestamps, etc.).
|
two values (numbers, timestamps, etc.).
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
> select *
|
> select * from generate_series(1,10) as numbers(a) where numbers.a between 3 and 6;
|
||||||
from generate_series(1,10) as numbers(a)
|
|
||||||
where numbers.a between 3 and 6;
|
|
||||||
a
|
a
|
||||||
---
|
---
|
||||||
3
|
3
|
||||||
@@ -19,9 +17,7 @@ If you supply an empty range by using the larger of the two values first, an
|
|||||||
empty set will result.
|
empty set will result.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
> select *
|
> select * from generate_series(1,10) as numbers(a) where numbers.a between 6 and 3;
|
||||||
from generate_series(1,10) as numbers(a)
|
|
||||||
where numbers.a between 6 and 3;
|
|
||||||
a
|
a
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
@@ -30,9 +26,7 @@ Tacking `symmetric` onto the `between` construct is one way to avoid this
|
|||||||
issue.
|
issue.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
> select *
|
> select * from generate_series(1,10) as numbers(a) where numbers.a between symmetric 6 and 3;
|
||||||
from generate_series(1,10) as numbers(a)
|
|
||||||
where numbers.a between symmetric 6 and 3;
|
|
||||||
a
|
a
|
||||||
---
|
---
|
||||||
3
|
3
|
||||||
@@ -45,5 +39,3 @@ issue.
|
|||||||
> that the argument to the left of AND be less than or equal to the argument
|
> that the argument to the left of AND be less than or equal to the argument
|
||||||
> on the right. If it is not, those two arguments are automatically swapped,
|
> on the right. If it is not, those two arguments are automatically swapped,
|
||||||
> so that a nonempty range is always implied.
|
> so that a nonempty range is always implied.
|
||||||
|
|
||||||
[source](https://www.postgresql.org/docs/current/functions-comparison.html#:~:text=BETWEEN%20SYMMETRIC%20is%20like%20BETWEEN,nonempty%20range%20is%20always%20implied.)
|
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
# Set Default As SQL Function In Migration
|
|
||||||
|
|
||||||
With static default values, like `0`, `true`, or `'pending'`, we can set them
|
|
||||||
directly as the value of `default`.
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
class CreateActionsTable < ActiveRecord::Migration[7.2]
|
|
||||||
def change
|
|
||||||
create_table :actions do |t|
|
|
||||||
t.string :status, default: 'pending'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
However, if we want our default value to be a SQL function like `now()`, we
|
|
||||||
have to use a lambda.
|
|
||||||
|
|
||||||
Let's extend the above example to see what that looks like:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
class CreateActionsTable < ActiveRecord::Migration[7.2]
|
|
||||||
def change
|
|
||||||
create_table :actions do |t|
|
|
||||||
t.string :status, default: 'pending'
|
|
||||||
|
|
||||||
t.column :created_at, :timestamptz, default: -> { 'now()' }, null: false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
If we need to alter the default of an existing table's column, we can do
|
|
||||||
something like this:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
class AddDefaultTimestampsToActions < ActiveRecord::Migration[7.2]
|
|
||||||
def up
|
|
||||||
change_column_default :actions, :created_at, -> { "now()" }
|
|
||||||
change_column_default :actions, :updated_at, -> { "now()" }
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
change_column_default :actions, :created_at, nil
|
|
||||||
change_column_default :actions, :updated_at, nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
I believe this functionality is available to Rails 5.0 and later.
|
|
||||||
|
|
||||||
[source](https://github.com/rails/rails/issues/27077#issuecomment-261155826)
|
|
||||||
Reference in New Issue
Block a user