나는이 할 노력하고있어 :MySQL의 수출 TSV
COPY huge_table (some_fields) FROM stdin;
그리고 trailer.sql 그냥 \.
에 포함되어 있습니다
mysql -u root old_db -e "SELECT some_fields FROM huge_table INTO OUTFILE ..." \
| cat header.sql - trailer.sql \
| psql new_db
header.sql에 포함 된 경우를 스트림을 종료합니다.
나는이 파이프가 작동 할 수 있도록 MySQL에서 탭으로 구분 된 값을 STDOUT으로 덤프하는 방법을 알지 못한다. 나는/dev/stdout을 경로로 지정하려고했지만 권한이 없다고 주장한다.
가능한 한 빨리 MySQL에서 PostgreSQL으로 데이터를 가져 오려고합니다. 디스크에 쓰고 PostgreSQL로 되돌릴 시간이 너무 느립니다.
을 MySQL에 파이프하면 거의 TSV가 출력되지만 그렇지는 않습니다.
이렇게 할 방법이 있습니까? 아니면 죽은 말을 매질하고 있습니까?
흠, 정말이 기능을 사용하고 싶었지만 불행히도 MySQL은 파일이 이미 존재한다고 불평합니다 (새로운 파일 생성을 주장합니다). 나는 이것이 쉽게 해결할 수 없다고 생각한다. 젠장, 너 MySQL : P – d11wtq
@ d11wtq 젠장 ... 나는 그걸 확인하지 않을 것이라고 생각했다. INTO OUTFILE에는'OVERWRITE' 또는'APPEND' 플래그가 없습니다. 또는'INTO'를'stdout'에 쓰고 쉘을 사용하여 결과를'psql'으로 파이프 할 수 있습니까? –
당신은이 문제에 홀로 있지 않습니다. http://stackoverflow.com/q/5016010/398670 –