ProgramingTip

heroku에서 .sql 펼쳐지는 실행하는 방법은 무엇입니까?

bestdevel 2020. 12. 7. 20:31
반응형

heroku에서 .sql 펼쳐지는 실행하는 방법은 무엇입니까?


heroku의 postgres 데이터베이스에서 실행하려는 명령이 포함 된 .sql 파일이 있습니다. 그러나 나는 그것을하는 방법을 모른다 :-

postgres 콘솔에 액세스 할 수있는 경우 다음을 입력합니다.

psql -h localhost -d database -U username -f datafile.sql

하지만 heroku는이 명령을 지원하지 않을 것입니다. 나는 시도했다

heroku pg:psql

하지만 파일을 입력 할 수 없습니다.

다른 옵션이 있습니까?


데이터베이스를 시드하는 것과 같은 경우 Richard Brown의 대답을 권장합니다. Rails Seed를 사용하거나 레이크 작업과 같은 펼치기를 사용하는 것이 더 낫습니다.

즉, SQL (원시 또는 파일)을 파이프 할 수있는 것이 가장 간단한 조회 또는 일상적인 쿼리와 같은 멱등성에 유용한 기능입니다. 이 경우 다음 중 하나로 로컬 SQL을 사용할 수 있습니다.

$ cat file.sql | heroku pg:psql --app app_name
$ echo "select * from table;" | heroku pg:psql --app app_name
$ heroku pg:psql --app app_name < file.sql

왜 psql을 사용하지 않습니까?

출력을 보면 heroku config응용 프로그램에서 사용하는 데이터베이스 URL (DATABASE_URL 키)이 표시됩니다. 수령 가져 오기 올바른 비트로 분리하면 psql모두 함께 사용하는 것이 좋습니다.

예 :

DATABASE_URL:  postgres://username:password@host:port/dbname

된다

psql -h host -p port -d dbname -U username -f datafile.sql

나는 테스트가 가능하고 반복 가능한 업데이트를 좋아합니다. 데이터베이스를 업데이트해야 할 때 업데이트를 수행하기 위해 레이크 작업을 작성합니다. 이렇게하면 설치하기 전에 먼저 테스트에 맞는지 확인하기 전에 먼저 테스트를 사용하세요.

Rails 데이터베이스에 새로운 데이터를로드하는 규칙은 작업이 준비된 db:seed후 수 있는 파일 을 만드는 db:migrate것입니다.

참조 : http://justinfrench.com/notebook/a-custom-rake-task-to-reset-and-seed-your-database 및 : http://railscasts.com/episodes/179-seed-data

참고 URL : https://stackoverflow.com/questions/15237366/how-to-execute-a-sql-script-on-heroku

반응형