我正在尝试在 azure 容器实例上部署 PostgresDatabase。要使用绑定安装在docker上部署(因为Azure容器实例仅支持绑定安装),我使用以下命令,并将其部署在docker上。
docker run -d -p 5434:5432 --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -e PGDATA=/var/lib/postgresql/data/pgdata -v /home/ubuntu/volum:/var/lib/postgresql/data postgres
如果我做类似的事情来部署在Azure容器实例上
az container create \
--resource-group $ACI_PERS_RESOURCE_GROUP \
--name postgreariesdb25-1 \
--location eastus \
--image postgres \
--dns-name-label $ACI_DNS_LABEL \
--environment-variables POSTGRES_PASSWORD=mysecretpassword PGDATA=/var/lib/postgresql/data/pgdata \
--ports 5432 \
--azure-file-volume-account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \
--azure-file-volume-account-key $STORAGE_KEY \
--azure-file-volume-share-name $ACI_PERS_SHARE_NAME \
--azure-file-volume-mount-path /var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)
我在 Azure 容器的日志中收到以下消息
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process. …Run Code Online (Sandbox Code Playgroud) 我在 django rest 框架中使用 Modelviewset。我想将查找字段更改为电子邮件(唯一)而不是 id。我曾尝试lookup_field = 'email'在我的 Schema 视图集中添加,
但它不起作用。这就是我得到的
{
"detail": "Not found."
}
如何解决这个问题。
我的 Views.py:
class SchemaViewSet(mixins.CreateModelMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
queryset = models.Schema.objects.all()
serializer_class = serializers.SchemaSerializer
lookup_field = 'email'
Run Code Online (Sandbox Code Playgroud)
我的模型.py:
class Schema(models.Model):
"""Database model for Schema """
name= models.TextField()
version = models.TextField()
email = models.EmailField(unique = True )
def __str__(self):
return self.email
Run Code Online (Sandbox Code Playgroud)
我的序列化程序.py:
class SchemaSerializer(serializers.ModelSerializer):
"""Serializes Schema"""
class Meta:
model = models.Schema
fields = ( 'id', 'name', 'version', 'email')
Run Code Online (Sandbox Code Playgroud)