anthropogenic.pages.dev
Ruby
14 Aug 2024
ワンライナと爪楊枝群症候群は揮発性のコード シングルクォートが含まれるフィールドを 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.