我的表中有一个枚举类型列。我现在决定将其设为 varchar 类型并施加一些约束。
Q1)这是一个很好的做法:使用枚举或在列上放置 constarint。
Q2)如何将我的枚举类型列更改为 varchar。正好与这个问题相反。我尝试使用这个:
ALTER TABLE tablename ALTER COLUMN columnname TYPE VARCHAR
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:No operator matches the given name and argument type(s). You might need to add explicit type casts.
这是表定义:
CREATE TABLE tablename (
id1 TEXT NOT NULL,
id2 VARCHAR(100) NOT NULL,
enum_field table_enum,
modified_on TIMESTAMP NOT NULL DEFAULT NOW(),
modified_by VARCHAR(100),
PRIMARY key (id1, id2)
);
Run Code Online (Sandbox Code Playgroud) 我有一个在我的系统上运行的docker容器,我开始使用这个命令:
docker run -it -v ~/some/dir -p 8000:80 3cce3211b735 bash
Run Code Online (Sandbox Code Playgroud)
现在docker ps列出了这个:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44de7549d38e 3cce3211b735 "bash" 14 minutes ago Up 14 minutes 22/tcp, 443/tcp, 8082/tcp, 0.0.0.0:8000->80/tcp hardcore_engelbart
Run Code Online (Sandbox Code Playgroud)
在容器内部,我使用以下命令运行我的django应用程序: python manage.py runserver 80
但我无法使用以下任何一种方式查看页面:
1.localhost:8000
2.127.0.0.1:8000
我明白我的8000端口映射到容器上的80端口.但为什么我无法访问它.我使用docker for mac而不是docker工具箱.如果您需要更多信息,请提供帮助和评论.
我在 Django 中有两个模型,定义如下。创意状态模型:
class RtbdCreativeStatus(models.Model):
creative_id = models.CharField(max_length=500, primary_key=True)
advertiser_id = models.CharField(max_length=100, primary_key=True)
exposure_level = models.CharField(max_length=125)
modified_on = models.DateTimeField()
modified_by = models.CharField(max_length=100)
class RtbdCreative(models.Model):
id = models.AutoField(primary_key=True)
advertiser_id = models.ForeignKey(RtbdCreativeStatus, on_delete=models.CASCADE)
creative_id = models.ForeignKey(RtbdCreativeStatus, on_delete=models.CASCADE)
country_id = models.IntegerField()
adm = models.CharField(max_length=255, null=True, blank=True)
sample_url = models.CharField(max_length=500)
landing_page = models.CharField(max_length=500, null=True, blank=True)
html = models.CharField(max_length=500)
creative_attributes = models.CommaSeparatedIntegerField(max_length=150, null=True, blank=True)
advertiser_domains = models.CharField(max_length=500)
description = models.CharField(max_length=500, null=True, blank=True)
created_on = models.DateTimeField(auto_now=True, auto_now_add=True)
creative_type = models.CharField(max_length=50, null=True, blank=True)
demand_source_type_id = models.IntegerField()
revalidate …Run Code Online (Sandbox Code Playgroud)