create_spangres_albums_table

in spanner/spec/spanner_postgresql_helper.rb [61:90]


def create_spangres_albums_table
  capture do
    db_admin_client = Google::Cloud::Spanner::Admin::Database.database_admin project: @project_id

    db_path = db_admin_client.database_path project: @project_id,
                                            instance: @instance.instance_id,
                                            database: @database_id

    create_table_query = <<~QUERY
          CREATE TABLE Albums (
            SingerId     bigint NOT NULL,
            AlbumId      bigint NOT NULL,
            AlbumTitle   character varying(1024),
            MarketingBudget bigint,
            PRIMARY KEY (SingerId, AlbumId)
          ) INTERLEAVE IN PARENT Singers ON DELETE CASCADE;
        QUERY

    job = db_admin_client.update_database_ddl database: db_path,
                                              statements: [create_table_query]

    job.wait_until_done!

    if job.error?
      puts "Error while creating table. Code: #{job.error.code}. Message: #{job.error.message}"
      raise GRPC::BadStatus.new(job.error.code, job.error.message)
    end
  end
end