ビューのスキーマをダンプしたいMySQLデータベースがあります。どうすればよいですか? --no-dataを使用してmysqldumpを試しましたが、それはテーブルスキーマのみをダンプします。
他のオプションをmysqldumpに渡すか、ビューを認識しないバージョンのmysqldumpを使用している可能性があります(おそらく古すぎる)。 mysqldump --no-dataを実行すると、ビュー定義がダンプされます。以下を参照してください。
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `t` AS select 1 AS `1` */;
dumpの作成中に-optオプションを使用します。
mysqldump -hserver -uUser -ppasswd -no-data --opt export > export.sql
Mysqldumpには、ビューのみをダンプするオプションはありません。以下のコマンドは、ビューのみのバックアップを取るのに役立ちます。
mysql -uroot -pPassword INFORMATION_SCHEMA --skip-column-names -e "table_type = 'VIEW'およびtable_schema = 'sakila'であるテーブルからtable_nameを選択します" | xargs mysqldump -u root -pPassword sakila> only_views.sql
他の答えはしませんでしたが、これは私にとってうまくいきました...
mysqldump --skip-comments --skip-opt --complete-insert --add-drop-table --database dbname -p