jueves, 7 de diciembre de 2017

Cómo crear una base de datos con Cloud Spanner usando DDL


Con la ayuda de un pequeño script bash.
Cloud Spanner admite operaciones DDL  para:
  • Crea una base de datos.
  • Crear, modificar o colocar tablas en una base de datos.
  • Agregar, modificar o colocar columnas en una tabla.
  • Crear o colocar índices en una base de datos.
Para cargar un DDL realmente largo, puede hacerlo a través de la consola: al hacer clic en la acción Crear tabla al editar una base de datos, o al hacer clic en la acción Editar esquema al editar una tabla, o puede pulsar y cambiar a  "Editar como Texto", que le permitirá ingresar el DDL en un área de texto grande:




Pero para cargar un DDL realmente largo, es posible que desee utilizar gcloud en la línea de comandos, y el siguiente script bash podría ser útil para analizar y ejecutar cada comando DDL:


#!/bin/bash

# Define path to your DDL
# export SPANNER_DB_DDL="./my-project-v1-2.ddl"

echo 'Loading DDL...'
echo 'NOTE: empty @type property warning on return protobuf message are OK'
DDL=`cat ${SPANNER_DB_DDL} | tr -d '\n' | tr -d '\r' | tr -d '\t'`
IFS=';' read -ra LINES <<< "$DDL"
for SQL in "${LINES[@]}"; do
    # echo $SQL
    if [ ${#SQL} -ge 5 ]; then
      gcloud spanner databases ddl update $SPANNER_DB --instance=$SPANNER_INSTANCE --ddl="$SQL"
    fi
done