Arundathi Patil | 85db5b0 | 2019-01-17 14:10:08 +0530 | [diff] [blame] | 1 | /* |
| 2 | ============LICENSE_START========================================== |
| 3 | =================================================================== |
| 4 | Copyright (C) 2018-19 IBM Intellectual Property. All rights reserved. |
| 5 | =================================================================== |
| 6 | |
| 7 | Unless otherwise specified, all software contained herein is licensed |
| 8 | under the Apache License, Version 2.0 (the License); |
| 9 | you may not use this software except in compliance with the License. |
| 10 | You may obtain a copy of the License at |
| 11 | |
| 12 | http://www.apache.org/licenses/LICENSE-2.0 |
| 13 | |
| 14 | Unless required by applicable law or agreed to in writing, software |
| 15 | distributed under the License is distributed on an "AS IS" BASIS, |
| 16 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 17 | See the License for the specific language governing permissions and |
| 18 | limitations under the License. |
| 19 | ============LICENSE_END============================================ |
| 20 | */ |
| 21 | |
| 22 | import { CdsUiServerApplication } from './application'; |
| 23 | |
| 24 | export async function migrate(args: string[]) { |
| 25 | const existingSchema = args.includes('--rebuild') ? 'drop' : 'alter'; |
| 26 | console.log('Migrating schemas (%s existing schema)', existingSchema); |
| 27 | |
| 28 | const app = new CdsUiServerApplication(); |
| 29 | await app.boot(); |
| 30 | await app.migrateSchema({ existingSchema }); |
| 31 | |
| 32 | // Connectors usually keep a pool of opened connections, |
| 33 | // this keeps the process running even after all work is done. |
| 34 | // We need to exit explicitly. |
| 35 | process.exit(0); |
| 36 | } |
| 37 | |
| 38 | migrate(process.argv).catch(err => { |
| 39 | console.error('Cannot migrate database schema', err); |
| 40 | process.exit(1); |
| 41 | }); |