본문 바로가기

분류 전체보기49

postgresql collation 日本語ソート SQLCOLLATION作成DROP COLLATION "jp-sort";CREATE COLLATION "jp-sort" (provider = icu, locale = "ja-u-kn-true"); COLLATION検索SELECT * FROM pg_collationwhere collname like '%jp%'; COLLATIONを利用した検索SELECT nameFROM userWHERE name like '%テスト'ORDER BY name COLLATE "jp-sort" ASClimit 1000; ソートテスト COLLATIONを利用したテスト _スペース:テスト _全角スペース:テスト!_びっくり:テスト@_アッドマーク:テスト1_いち:テスト1_イチ:テスト01_ぜろいち:テスト01_ゼロイチ:テスト1テスト2_に:テスト2_.. 2024. 10. 5.
AWS bucket object putがretry扱いになる ソース実行1つのFileをopenして、S3に2回putするfile = File.open('file.csv')object(key1).put(body: file, **params)object(key2).put(body: file, **params) 結果(ログ)2回目のputする時に、retryしているため20秒かかってしまう。[Aws::S3::Client 200 0.059539 0 retries] put_object(body: ... )[Aws::S3::Client 200 20.484029 1 retries] put_object(body: ... )  理由Fileを1回readすると、カーソルが末尾に移動するからです。file = File.open('file.csv')=> #[93] pry(main)> file.read=> .. 2024. 8. 8.
unicode normalizeのform ruby on rails 6.1 update release notehttps://edgeguides.rubyonrails.org/6_1_release_notes.htmlRemove deprecated ActiveSupport::Multibyte::Unicode.pack_graphemes, ActiveSupport::Multibyte::Unicode.unpack_graphemes, ActiveSupport::Multibyte::Unicode.normalize, ActiveSupport::Multibyte::Unicode.downcase, ActiveSupport::Multibyte::Unicode.upcase and ActiveSupport::Multibyte::Unicode.swapcase.  6.1バー.. 2024. 6. 10.
rsepc mock 메소드 내부 확인 describe '#test_target_method' do subject do described_class.new.test_target_method end before do travel_to('2020-01-01 00:00:00') ... end shared_examples '공통 테스트' do |sql| it '확인 내용' do allow(모듈::클래스).to receive(:new).and_return(test_class) test_class.class.alias_method :original_method_name, :method_name allow(test_class).to receive(:method_name) do |relation| result = test_class.original_meth.. 2023. 10. 23.
[GAS:sheets]CSV출력하기 / 1. 시트를 CSV형식으로 변환하기 CSV출력하기 목차 시트를 CSV형식으로 변환하기 (현재 열람중) 구글 드라이브에 CSV파일을 출력하기 1. 시트를 CSV로 변환하기 (1) CSV형식의 스프레드 시트를 작성 또는 준비한다. 시트이름은 CSV 로 작성 (2) Apps Script에서 코드를 작성한다. 이하 사양에 대해 간단하게 정리 변환할 시트이름으로 ActiveSpreadsheet를 가져온다 1행 : Header 헤더 2행부터 : data 데이터 헤더와 데이터는 A열 부터 입력된다. 헤더의 길이만큼 데이터를 출력한다. (헤더가 5개인 경우, 데이터는 E열까지 출력) 데이터가 하나도 없는 행이 있다면 그 이후는 출력하지 않음. 이외 체크처리는 없음. const SHEET_CSV = getSheetByName('CSV'); const CE.. 2023. 1. 2.
rails ActiveRecord 메모리, 성능 개선 공통DB SQL발행 횟수를 줄이기 SelectN+1을 예방하기includes, preload, eager_load를 사용해서 쿼리를 캐시하기includes : 테이블 별로 SQL로 검색해서 캐시, 조건에 따라 SQL 1개만 발행preload : 테이블 별로 SQL로 검색해서 캐시, 관련테이블은 조건 지정 불가능eager_load : 관련된 테이블을 left join으로 검색해서 캐시, SQL 1개만 발행@user = User.includes(:UserDetail)검색시 불필요한 join이나 eagal_load를 줄이기단순 Copy & Paste 혹은 코드 수정으로 인해 사용하지 않는 테이블을 지우기건수 검색할때는 length를 사용하기count : 실행할 때 마다 SQL발행size : 실행할 때 마다 S.. 2022. 12. 30.