20240814

ワンライナと爪楊枝群症候群は揮発性のコード

シングルクォートが含まれるフィールドを INSERT するのにひさびさの爪楊枝群症候群(leaning toothpick syndrome) を発動してしまった。 DB に入ればいいんだよ。入れば。

開発環境だからと傍若無人な振る舞いを許している。

  1. postgresql から export して
psql> COPY chartulas to '/tmp/chartulas.csv' delimiters',';
➜ sort -k1 -n /tmp/chartulas.csv | less
  1. rails で特定のテーブルのみを初期化して auto increment のカウンタもリセットしてから
irb> Chartula.delete_all
irb> ActiveRecord::Base.connection.reset_pk_sequence!('chartulas')
  1. 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
  1. import する
psql> \i /tmp/isert.sql

ながらく MySQL の住人だったからか Postgresql の \X 記法にどうしても違和感を感じてしまう。徐々に慣れていくしかない。

2024-08-14 23:49:03 +0900 +0900


Next
Previous

anime 3
api 1
aws 3
cloudflrare 1
cognito 1
development 1
development process 1
development standard 1
game 1
howto 2
hugo 1
idea 2
impressed 1
leaning toothpick syndrome 1
life 6
log 2
maxim 2
mdx 1
postgresql 2
rails 7
rubocop 1
ruby 1
rust 1
solution 2
stripe 1
tech 17
ui 1
warp 1