diff options
author | Joas Schilling <coding@schilljs.com> | 2017-07-06 09:58:39 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-07-06 09:58:39 +0200 |
commit | 0f275b15503a58c34fe6a90a3eababa8956b6ede (patch) | |
tree | ac0e01806f56c05652ee72b72bb834f480f2bbb9 /core/Command/Db | |
parent | 984953ef4a5917e672118a96e3b3714862011308 (diff) | |
download | nextcloud-server-0f275b15503a58c34fe6a90a3eababa8956b6ede.tar.gz nextcloud-server-0f275b15503a58c34fe6a90a3eababa8956b6ede.zip |
Only create the migration directory when necessary
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'core/Command/Db')
-rw-r--r-- | core/Command/Db/Migrations/GenerateCommand.php | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/core/Command/Db/Migrations/GenerateCommand.php b/core/Command/Db/Migrations/GenerateCommand.php index b6e1a17d683..e6c38d06e5d 100644 --- a/core/Command/Db/Migrations/GenerateCommand.php +++ b/core/Command/Db/Migrations/GenerateCommand.php @@ -136,6 +136,8 @@ class <classname> extends SimpleMigrationStep { ]; $code = str_replace($placeHolders, $replacements, self::$_templateSimple); $dir = $ms->getMigrationsDirectory(); + + $this->ensureMigrationDirExists($dir); $path = $dir . '/' . $className . '.php'; if (file_put_contents($path, $code) === false) { @@ -145,4 +147,19 @@ class <classname> extends SimpleMigrationStep { return $path; } + private function ensureMigrationDirExists($directory) { + if (file_exists($directory) && is_dir($directory)) { + return; + } + + if (file_exists($directory)) { + throw new \RuntimeException("Could not create folder \"$directory\""); + } + + $this->ensureMigrationDirExists(dirname($directory)); + + if (!@mkdir($directory) && !is_dir($directory)) { + throw new \RuntimeException("Could not create folder \"$directory\""); + } + } } |