@@ 93-119 (lines=27) @@ | ||
90 | return $this->knownVersions; |
|
91 | } |
|
92 | ||
93 | private function up($data, $targetVersion) |
|
94 | { |
|
95 | while (version_compare($data->version, $targetVersion, '<')) { |
|
96 | if (!isset($this->migrationsBySourceVersion[$data->version])) { |
|
97 | throw new MigrationException(sprintf( |
|
98 | 'No migration found to upgrade from version %s to %s.', |
|
99 | $data->version, |
|
100 | $targetVersion |
|
101 | )); |
|
102 | } |
|
103 | ||
104 | $migration = $this->migrationsBySourceVersion[$data->version]; |
|
105 | ||
106 | // Final version too high |
|
107 | if (version_compare($migration->getTargetVersion(), $targetVersion, '>')) { |
|
108 | throw new MigrationException(sprintf( |
|
109 | 'No migration found to upgrade from version %s to %s.', |
|
110 | $data->version, |
|
111 | $targetVersion |
|
112 | )); |
|
113 | } |
|
114 | ||
115 | $migration->up($data); |
|
116 | ||
117 | $data->version = $migration->getTargetVersion(); |
|
118 | } |
|
119 | } |
|
120 | ||
121 | private function down($data, $targetVersion) |
|
122 | { |
|
@@ 121-147 (lines=27) @@ | ||
118 | } |
|
119 | } |
|
120 | ||
121 | private function down($data, $targetVersion) |
|
122 | { |
|
123 | while (version_compare($data->version, $targetVersion, '>')) { |
|
124 | if (!isset($this->migrationsByTargetVersion[$data->version])) { |
|
125 | throw new MigrationException(sprintf( |
|
126 | 'No migration found to downgrade from version %s to %s.', |
|
127 | $data->version, |
|
128 | $targetVersion |
|
129 | )); |
|
130 | } |
|
131 | ||
132 | $migration = $this->migrationsByTargetVersion[$data->version]; |
|
133 | ||
134 | // Final version too low |
|
135 | if (version_compare($migration->getSourceVersion(), $targetVersion, '<')) { |
|
136 | throw new MigrationException(sprintf( |
|
137 | 'No migration found to downgrade from version %s to %s.', |
|
138 | $data->version, |
|
139 | $targetVersion |
|
140 | )); |
|
141 | } |
|
142 | ||
143 | $migration->down($data); |
|
144 | ||
145 | $data->version = $migration->getSourceVersion(); |
|
146 | } |
|
147 | } |
|
148 | } |
|
149 |