DynamoDB и TableNameOverride с префиксом
Я тестирую таблицы DynamoDB и хочу установить разные имена таблиц для среды prod и dev, используя префикс "DEV_» для развития.
Я сделал этот тест, чтобы напечатать имя таблицы:
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig.TableNameOverride;
TableNameOverride tbl = new TableNameOverride("test").withTableNamePrefix("dev_");
System.out.println("name=" + tbl.getTableName() + " prefix=" + tbl.getTableNamePrefix());
Это печатает:name=null prefix=dev_
Как получилось, что имя здесь пустое?
TableNameOverride tbl = new TableNameOverride("test");//.withTableNamePrefix("dev_");
System.out.println("name=" + tbl.getTableName() + " prefix=" + tbl.getTableNamePrefix());
Это печатает: *name=test prefix=null
Как я могу получить имя таблицы, чтобы быть "dev_test» ? *
Я хочу использовать это позже, чтобы получить "DEV_» префикс для всех таблиц в режиме разработки, например:
DynamoDBTable annotation = (DynamoDBTable) myclass.getClass().getAnnotation(DynamoDBTable.class);
TableNameOverride tbl = new TableNameOverride(annotation.tableName()).withTableNamePrefix("dev_");
Или есть другое решение для разделения таблиц dev и prod?
Сначала я думал о размещении их в отдельных регионах, но не был уверен в этом.
Можно также использовать это:
mapper.save(ck, new DynamoDBMapperConfig(new TableNameOverride((isDev ? "dev_" : "") + annotation.tableName())));