anthropogenic.pages.dev
20240814
ワンライナと爪楊枝群症候群は揮発性のコード
シングルクォートが含まれるフィールドを INSERT するのにひさびさの爪楊枝群症候群(leaning toothpick syndrome) を発動してしまった。 DB に入ればいいんだよ。入れば。
開発環境だからと傍若無人な振る舞いを許している。
- postgresql から export して
psql> COPY chartulas to '/tmp/chartulas.csv' delimiters',';
➜ sort -k1 -n /tmp/chartulas.csv | less
- rails で特定のテーブルのみを初期化して auto increment のカウンタもリセットしてから
irb> Chartula.delete_all
irb> ActiveRecord::Base.connection.reset_pk_sequence!('chartulas')
- import の SQL を乱暴に作成して(シングルクォートは double them up しろ というのを初めて知った)
$ ruby -r csv -e "CSV.parse(ARGF.read, headers: true) do |row| row[1].gsub!('\'', '\'\''); row[2].gsub!('\'', '\'\''); row[3].gsub!('\'', '\'\''); puts \"INSERT INTO chartulas VALUES (DEFAULT, 1, \'#{row[1]}\', \'#{row[2]}\', \'#{row[3]}\', \'#{row[4]}\', \'#{row[5]}\');\"; end" /tmp/chartulas.csv > /tmp/insert.sql
- import する
psql> \i /tmp/isert.sql
ながらく MySQL の住人だったからか Postgresql の \X 記法にどうしても違和感を感じてしまう。徐々に慣れていくしかない。
2024-08-14 23:49:03 +0900 +0900
anime
3
api
1
aws
3
cognito
1
game
1
howto
2
hugo
1
idea
2
life
6
log
2
maxim
2
mdx
1
rails
7
rubocop
1
ruby
1
rust
1
solution
2
stripe
1
tech
17
ui
1
warp
1