所以,我的主机上有一堆未标记的图像.我用
sudo docker rmi $(sudo docker images | grep "<none>" | awk '{print($3)}')
删除这些图像.执行时,我收到错误
来自守护进程的错误响应:冲突,无法删除31fa814ba25a,因为容器70c20aa2c19f正在使用它,使用-f强制
所以我做了
sudo docker rmi 70c20aa2c19f
Run Code Online (Sandbox Code Playgroud)
我得到了错误
来自守护程序的错误响应:没有这样的图像:70c20aa2c19f
因此,如果ImageID 70c20aa2c19f没有图像,那么为什么初始删除命令的错误表明存在ImageID 70c20aa2c19f的图像?
其中一个表的列类型从整数更改为字符串。
Logic(PBase):
__tablename__ = "logic"
Id(Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)
此列更改为字符串
Logic(PBase):
__tablename__ = "logic"
Id(String, primary_key=True)
Run Code Online (Sandbox Code Playgroud)
现在我正在使用 alembic 自动生成迁移脚本。为了检测类型更改,我在 env.py 中提供了compare_type=True
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
compare_type=True
)
Run Code Online (Sandbox Code Playgroud)
这样做,迁移脚本就生成好了。以下是生成的迁移脚本的内容:
from alembic import op # noqa
import sqlalchemy as sa # noqa
def upgrade():
### commands auto generated by Alembic - please adjust! ###
op.alter_column('logics', 'id',
existing_type=sa.INTEGER(),
type_=sa.String())
### end Alembic commands ###
def downgrade():
### commands auto generated by Alembic - please adjust! ###
op.alter_column('logics', 'id',
existing_type=sa.String(),
type_=sa.INTEGER())
### end …Run Code Online (Sandbox Code Playgroud) 我有一个模型类:
class User(PBase):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False, unique=True)
Run Code Online (Sandbox Code Playgroud)
现在根据文档,当类型Integer与primary_key一起使用时,会自动生成一个序列.这是输出表
id | integer | not null default nextval('users_id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)
如您所见,在修饰符列中生成默认序列.
但是当我尝试添加第二个用户时,我在主键约束上得到完整性错误.
IntegrityError) duplicate key value violates unique constraint "users_pkey"
DETAIL: Key (id)=(1) already exists.
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
编辑:添加用户的代码,快照
def create(name, email, roleid)
with self._session_context() as session:
user = User(name, email, roleid)
session.add(user)
session.commit()
Run Code Online (Sandbox Code Playgroud) 所以,我有一个项目,我想为项目提供一个docker镜像.我的目录是:
--Dockerfile
--source
Run Code Online (Sandbox Code Playgroud)
所以在我的Dockerfile中我有以下命令:
PS.我尝试使用WORKDIR而不是RUN cd,但后来没有复制源的内容.任何解决方法,以便语句CD源自己执行?