@@ -38,7 +38,7 @@ module.exports = function runMigrations(context) {
38
38
return knexMigratorPromise . then ( ( ) => {
39
39
config . set ( 'logging.transports' , transports ) . save ( ) ;
40
40
} ) . catch ( ( error ) => {
41
- if ( error . stderr . match ( / C O D E \: E N O T F O U N D / ) ) {
41
+ if ( error . stderr && error . stderr . match ( / C O D E \: E N O T F O U N D / ) ) {
42
42
// Database not found
43
43
error = new errors . ConfigError ( {
44
44
config : {
@@ -47,7 +47,7 @@ module.exports = function runMigrations(context) {
47
47
message : 'Invalid database host' ,
48
48
environment : context . instance . system . environment
49
49
} ) ;
50
- } else if ( error . stderr . match ( / C O D E \: E R _ A C C E S S _ D E N I E D _ E R R O R / ) ) {
50
+ } else if ( error . stderr && error . stderr . match ( / C O D E \: E R _ A C C E S S _ D E N I E D _ E R R O R / ) ) {
51
51
error = new errors . ConfigError ( {
52
52
config : {
53
53
'database.connection.user' : config . get ( 'database.connection.user' ) ,
@@ -56,6 +56,13 @@ module.exports = function runMigrations(context) {
56
56
message : 'Invalid database username or password' ,
57
57
environment : context . instance . system . environment
58
58
} ) ;
59
+ } else if ( error . stdout && error . stdout . match ( / n p m i n s t a l l s q l i t e 3 \- \- s a v e / ) ) {
60
+ // We check stdout because knex outputs to stdout on this particular error
61
+ error = new errors . SystemError ( {
62
+ message : 'It appears that sqlite3 did not install properly when Ghost-CLI was installed.\n' +
63
+ 'Please either uninstall and reinstall Ghost-CLI, or switch to MySQL' ,
64
+ help : 'https://docs.ghost.org/v1.0.0/docs/troubleshooting#section-sqlite3-install-failure'
65
+ } ) ;
59
66
}
60
67
61
68
config . set ( 'logging.transports' , transports ) . save ( ) ;
0 commit comments