Я пытаюсь настроить Dynamodb на своем локальном компьютере, используя docker. Я использую sh для управления инициализацией с помощью файла makefile. Вот файл makefile, который я использую
TABLE_NAME="users"
create_db:
@aws dynamodb --endpoint-url http://localhost:8042 create-table \
--table-name $(TABLE_NAME) \
--attribute-definitions \
AttributeName=userID,AttributeType=N \
--key-schema \
AttributeName=userID,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 >> /dev/null;
drop_db: check_db
check_db; if [test $$? -eq 1] then \
@aws dynamodb --endpoint-url http://localhost:8042 delete-table --table-name $(TABLE_NAME); \
fi
check_db:
-@aws dynamodb --endpoint-url http://localhost:8042 describe-table --table-name $(TABLE_NAME);
AWS не дает DROP IF EXISTS таких функций, как MYSQL, поэтому я пытаюсь использовать вывод таблицы описания для проверки наличие стола. Однако получаю следующую ошибку:
check_db; if [test $? -eq 1] then \
@aws dynamodb --endpoint-url http://localhost:8042 delete-table --table-name "requests"; \
fi
/bin/sh: -c: line 0: syntax error near unexpected token `fi'
/bin/sh: -c: line 0: `check_db; if [test $? -eq 1] then @aws dynamodb --endpoint-url http://localhost:8042 delete-table --table-name "requests"; fi'
make: *** [drop_db] Error 2
Я новичок в makefile и не могу понять, как исправить ошибку. Что не так в приведенном выше файле makefile? И есть ли лучший способ проверить наличие динамо-стола