mysqldump-자동 증가없이 구조 내보내기
MySQL 데이터베이스가 있고 자동 증분 값없이 구조 만 내보내는 방법을 찾으려고합니다. mysqldump --no-data
거의 작업을 수행하지만 auto_increment 값을 유지합니다. PHPMyAdmin을 사용하지 않고 할 수있는 방법이 있습니까 (내가 할 수 있다는 것을 알고 있습니다)?
다음과 같이 할 수 있습니다.
mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > <filename>.sql
다른 사람에 의해 언급 한 바와 같이 원하는 경우 sed
올바르게 작동에 추가 g
(대한 g 이 같은 lobal 교체) 매개 변수를 :
mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//g' > <filename>.sql
(당신이 GUI 도구를 설치 한 경우에만 작동합니다 mysqldump --skip-auto-increment
)
JoDev의 대답은 sed 정규식을 약간 조정하여 완벽하게 작동했습니다.
mysqldump -d -h localhost -u<user> -p<password> <databaseName> | sed 's/ AUTO_INCREMENT=[0-9]*//g' > databaseStructure.sql
기본적으로 AUTO_INCREMENT 테이블 정의를 생성하는 --opt에 포함 된 --create-options입니다.
기본 테이블 만 원하는 경우
mysql -hlocalhost -uuser -ppass --skip-column-names --batch \
-e "select table_name from tables where table_type = 'BASE TABLE' and table_schema = 'schemaname'" INFORMATION_SCHEMA \
| xargs mysqldump -hlocalhost -uuser -ppass \
--no-data --skip-triggers --skip-opt --no-create-db \
schemaname
뷰, 트리거 및 루틴도 원한다면
mysqldump -hlocalhost -uuser -ppass \
--skip-opt --events --routines --no-data \
schemaname
이 게시물 덕분에 내 질문에 답할 수있었습니다.
DB에서 버전 관리를 어떻게 할 수 있습니까?
그런 다음 방금이 스크립트를 만들었습니다. db_bkp.sh
#!/bin/sh
filename="db_structure.sql"
backupfolder="/var/www/"
fpath="$backupfolder/$filename"
usr="DBUSER"
pass="DBPASS"
db="DBNAME"
mysqldump --user=$usr --password=$pass --no-data $db | sed 's/ AUTO_INCREMENT=[0-9]*//g' > "$fpath"
그런 다음 이것을 crontab에 추가했습니다.
30 5 * * * sh /home/scripts/db_bkp.sh
그런 다음 내 저장소에서 결과 db_structure.sql
를 git에 추가하고 변경 사항을 prod로 푸시하기 전에 항상 모든 db에서 수행하는 것을 잊은 구조적 변경 사항이 있는지 확인합니다.
mysqldump -u [사용자] -p [비밀번호] -d --skip-opt-단일 트랜잭션 [DB_SCHEMA]> [FILE.ESTENSIONE]
참고 URL : https://stackoverflow.com/questions/15656463/mysqldump-export-structure-only-without-autoincrement
'IT TIP' 카테고리의 다른 글
TypeScript에서 "type"예약어는 무엇입니까? (0) | 2020.10.14 |
---|---|
pushState 및 SEO (0) | 2020.10.14 |
Subversion의 상태 "S" (0) | 2020.10.14 |
버킷의 객체에 대한 S3 제한 (0) | 2020.10.14 |
스핑크스는 루트 문서 아래의 디렉토리에없는 문서에 연결할 수 있습니까? (0) | 2020.10.14 |