Initial commit
This commit is contained in:
216
references/mass-operations.md
Normal file
216
references/mass-operations.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# SAP HANA CLI - Mass Operations Reference
|
||||
|
||||
**Source**: [https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/massConvert.js](https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/massConvert.js)
|
||||
|
||||
Commands and functions for batch operations on database objects.
|
||||
|
||||
---
|
||||
|
||||
## Mass Convert Command
|
||||
|
||||
### massConvert
|
||||
|
||||
Batch convert database objects to various formats.
|
||||
|
||||
**Aliases**: `mc`, `massconvert`, `massConv`, `massconv`
|
||||
|
||||
```bash
|
||||
hana-cli massConvert [schema] [table] [view]
|
||||
```
|
||||
|
||||
**UI Alternative**: `massConvertUI`
|
||||
|
||||
---
|
||||
|
||||
## Conversion Types
|
||||
|
||||
### HDBTABLE Format
|
||||
|
||||
Generates `.hdbtable` files packaged in ZIP format.
|
||||
|
||||
```bash
|
||||
hana-cli massConvert -s MYSCHEMA -o hdbtable
|
||||
```
|
||||
|
||||
**Functions**:
|
||||
- `hdbtableTablesSQL()` - SQL-based table conversion
|
||||
- `hdbtableTables()` - CDS-compiled table conversion
|
||||
- `hdbtableViewsSQL()` - SQL-based view conversion
|
||||
- `hdbtableViews()` - CDS-compiled view conversion
|
||||
|
||||
### HDBMIGRATIONTABLE Format
|
||||
|
||||
Generates `.hdbmigrationtable` files with version headers.
|
||||
|
||||
```bash
|
||||
hana-cli massConvert -s MYSCHEMA -o hdbmigrationtable
|
||||
```
|
||||
|
||||
**Functions**:
|
||||
- `hdbmigrationtableTablesSQL()` - SQL-based migration format
|
||||
- `hdbmigrationtableTables()` - CDS-compiled migration format
|
||||
|
||||
### CDS Format
|
||||
|
||||
Generates unified `.cds` source file.
|
||||
|
||||
```bash
|
||||
hana-cli massConvert -s MYSCHEMA -o cds
|
||||
```
|
||||
|
||||
**Functions**:
|
||||
- `cdsTables()` - Extracts table definitions
|
||||
- `cdsViews()` - Extracts view definitions with parameters
|
||||
|
||||
---
|
||||
|
||||
## Configuration Options
|
||||
|
||||
| Option | Type | Description |
|
||||
|--------|------|-------------|
|
||||
| `useHanaTypes` | boolean | Apply HANA-specific data types |
|
||||
| `keepPath` | boolean | Preserve namespace paths |
|
||||
| `noColons` | boolean | Remove colon syntax |
|
||||
| `useExists` | boolean | Use EXISTS conditions |
|
||||
| `useQuoted` | boolean | Quote identifiers |
|
||||
| `useCatalogPure` | boolean | SQL-based catalog extraction |
|
||||
| `namespace` | string | CDS namespace prefix |
|
||||
| `limit` | number | Restrict result set size |
|
||||
| `log` | boolean | Generate JSON audit logs |
|
||||
| `table` | string | Pattern filter for tables |
|
||||
| `view` | string | Pattern filter for views |
|
||||
|
||||
---
|
||||
|
||||
## Output Functions
|
||||
|
||||
### writeZip()
|
||||
|
||||
Compresses files using DEFLATE compression.
|
||||
|
||||
### writeCDS()
|
||||
|
||||
Writes unified CDS file containing all entities.
|
||||
|
||||
### writeSynonyms()
|
||||
|
||||
Stores synonym mappings for reference.
|
||||
|
||||
### writeLog()
|
||||
|
||||
Creates JSON execution logs for auditing.
|
||||
|
||||
---
|
||||
|
||||
## Mass Rename Command
|
||||
|
||||
### massRename
|
||||
|
||||
Batch rename database objects.
|
||||
|
||||
```bash
|
||||
hana-cli massRename [schema]
|
||||
```
|
||||
|
||||
**Use Cases**:
|
||||
- Standardize naming conventions
|
||||
- Apply prefixes/suffixes
|
||||
- Case conversion
|
||||
|
||||
---
|
||||
|
||||
## Mass Users Command
|
||||
|
||||
### massUsers
|
||||
|
||||
Bulk user operations.
|
||||
|
||||
```bash
|
||||
hana-cli massUsers
|
||||
```
|
||||
|
||||
**Use Cases**:
|
||||
- Create multiple users
|
||||
- Assign roles in bulk
|
||||
- User cleanup operations
|
||||
|
||||
---
|
||||
|
||||
## Workflow Example
|
||||
|
||||
### Convert Entire Schema to CDS
|
||||
|
||||
```bash
|
||||
# Interactive mode
|
||||
hana-cli massConvert
|
||||
|
||||
# Direct specification
|
||||
hana-cli massConvert -s MYSCHEMA
|
||||
|
||||
# With options
|
||||
hana-cli massConvert -s MYSCHEMA --useHanaTypes --namespace "my.app"
|
||||
|
||||
# Generate log file
|
||||
hana-cli massConvert -s MYSCHEMA --log
|
||||
```
|
||||
|
||||
### Using the UI
|
||||
|
||||
```bash
|
||||
# Launch browser-based interface
|
||||
hana-cli massConvertUI
|
||||
```
|
||||
|
||||
The UI provides:
|
||||
- Schema browser
|
||||
- Object selection
|
||||
- Preview before conversion
|
||||
- Download options
|
||||
|
||||
---
|
||||
|
||||
## Output Structure
|
||||
|
||||
### ZIP Archive Contents
|
||||
|
||||
```
|
||||
output.zip
|
||||
├── src/
|
||||
│ ├── CUSTOMERS.hdbtable
|
||||
│ ├── ORDERS.hdbtable
|
||||
│ ├── PRODUCTS.hdbtable
|
||||
│ └── ...
|
||||
└── synonyms.json (if applicable)
|
||||
```
|
||||
|
||||
### CDS File Structure
|
||||
|
||||
```cds
|
||||
namespace my.schema;
|
||||
|
||||
entity CUSTOMERS {
|
||||
key ID : Integer;
|
||||
NAME : String(100);
|
||||
EMAIL : String(255);
|
||||
}
|
||||
|
||||
entity ORDERS {
|
||||
key ID : Integer;
|
||||
CUSTOMER_ID : Integer;
|
||||
ORDER_DATE : Date;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Test with limit first**: Use `--limit 10` to verify output format
|
||||
2. **Review generated files**: Check for naming conflicts
|
||||
3. **Backup before conversion**: Preserve original definitions
|
||||
4. **Use namespaces**: Apply consistent CDS namespaces
|
||||
5. **Enable logging**: Track what was converted
|
||||
|
||||
---
|
||||
|
||||
*Reference: [https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/massConvert.js*](https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/massConvert.js*)
|
||||
Reference in New Issue
Block a user