@@ -45,6 +45,7 @@ impl DumpDirectory {
45
45
let timestamp = chrono:: Utc :: now ( ) ;
46
46
let timestamp_str = timestamp. format ( "%Y-%m-%d-%H%M%S" ) . to_string ( ) ;
47
47
let export_dir = std:: env:: temp_dir ( ) . join ( "dump-db" ) . join ( timestamp_str) ;
48
+ debug ! ( ?export_dir, "Creating database dump folder…" ) ;
48
49
std:: fs:: create_dir_all ( & export_dir) ?;
49
50
Ok ( Self {
50
51
timestamp,
@@ -62,7 +63,9 @@ impl DumpDirectory {
62
63
fn add_readme ( & self ) -> Result < ( ) , PerformError > {
63
64
use std:: io:: Write ;
64
65
65
- let mut readme = File :: create ( self . export_dir . join ( "README.md" ) ) ?;
66
+ let path = self . export_dir . join ( "README.md" ) ;
67
+ debug ! ( ?path, "Writing README.md file…" ) ;
68
+ let mut readme = File :: create ( path) ?;
66
69
readme. write_all ( include_bytes ! ( "dump_db/readme_for_tarball.md" ) ) ?;
67
70
Ok ( ( ) )
68
71
}
@@ -78,13 +81,18 @@ impl DumpDirectory {
78
81
crates_io_commit : dotenv:: var ( "HEROKU_SLUG_COMMIT" )
79
82
. unwrap_or_else ( |_| "unknown" . to_owned ( ) ) ,
80
83
} ;
81
- let file = File :: create ( self . export_dir . join ( "metadata.json" ) ) ?;
84
+ let path = self . export_dir . join ( "metadata.json" ) ;
85
+ debug ! ( ?path, "Writing metadata.json file…" ) ;
86
+ let file = File :: create ( path) ?;
82
87
serde_json:: to_writer_pretty ( file, & metadata) ?;
83
88
Ok ( ( ) )
84
89
}
85
90
86
91
pub fn dump_schema ( & self , database_url : & str ) -> Result < ( ) , PerformError > {
87
- let schema_sql = File :: create ( self . export_dir . join ( "schema.sql" ) ) ?;
92
+ let path = self . export_dir . join ( "schema.sql" ) ;
93
+ debug ! ( ?path, "Writing schema.sql file…" ) ;
94
+ let schema_sql = File :: create ( path) ?;
95
+
88
96
let status = std:: process:: Command :: new ( "pg_dump" )
89
97
. arg ( "--schema-only" )
90
98
. arg ( "--no-owner" )
@@ -100,9 +108,12 @@ impl DumpDirectory {
100
108
}
101
109
102
110
pub fn dump_db ( & self , database_url : & str ) -> Result < ( ) , PerformError > {
111
+ debug ! ( "Generating export.sql and import.sql files…" ) ;
103
112
let export_script = self . export_dir . join ( "export.sql" ) ;
104
113
let import_script = self . export_dir . join ( "import.sql" ) ;
105
114
gen_scripts:: gen_scripts ( & export_script, & import_script) ?;
115
+
116
+ debug ! ( "Filling data folder…" ) ;
106
117
std:: fs:: create_dir ( self . export_dir . join ( "data" ) ) ?;
107
118
run_psql ( & export_script, database_url)
108
119
}
@@ -115,6 +126,7 @@ impl Drop for DumpDirectory {
115
126
}
116
127
117
128
pub fn run_psql ( script : & Path , database_url : & str ) -> Result < ( ) , PerformError > {
129
+ debug ! ( ?script, "Running psql script…" ) ;
118
130
let psql_script = File :: open ( & script) ?;
119
131
let psql = std:: process:: Command :: new ( "psql" )
120
132
. arg ( database_url)
0 commit comments