小编l.b*_*oya的帖子

如何在fastapi中管理sqlalchemy模型迁移

我已使用fastapi来处理sqlachemy模型面临的问题

sqlachemy第一次创建模型,但是当我们更改模型时不会影响 postgres 数据库。克服这个问题。

  • 我已经使用alembic包来处理模型迁移,它可以用于添加新列和删除列,但不能用于更改列,例如重命名列名称、更改数据类型等。
  • 当我重命名列名称时,它的创建升级操作会删除现有列并使用新名称添加新列(数据丢失)

例如:将is_superuser重命名为is_admin

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column("user", sa.Column("is_admin", sa.Boolean(), nullable=True))
    op.drop_column("user", "is_superuser")
    # ### end Alembic commands ###

Run Code Online (Sandbox Code Playgroud)

看看删除is_superuser列 int 的重命名发生了什么

我知道棘手的解决方案是在迁移中自定义添加操作 op.alter_column('table_name','column_name',new_column_name='new column name')

如何在 fastapi 中使用 sqlalchemy 处理模型迁移,因为如果我在 alembic 迁移中犯了错误,那对我来说将是危险的。

有没有其他包或方法来处理sqlalchemy的迁移

python sqlalchemy alembic

7
推荐指数
1
解决办法
3061
查看次数

不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定

在我的 Django 项目中,我已经在根目录中以及 django 项目中都有 .gitignore 文件,但是当我触发git statusgit add .它将所有内容添加__pycache__ db.sqlite3到存储库中时。我需要从我的项目中删除这两件事。请帮忙。!

\n\n
\n

我分别在我的两个文件中尝试了诸如*.sqlite3mom/*.sqlite3mom/db.sqlite3和 之类的所有内容。但任何东西在任何目录下都不起作用。db.sqlite3.gitignore

\n
\n\n

这是我的主要 git 忽略文件.gitignore

\n\n
media\n*.sqlite3\n**/__pycache__/**\n*.pyc\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的另一个 git 忽略文件.gitignore

\n\n
media\ndb.sqlite3\n**/__pycache__/**\n*.pyc\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

我还尝试了在线资源中的许多可能性,但没有任何效果

\n
\n\n

文件结构

\n\n
MOM-PROJECT(local Repo)\n|\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80MOM (main project)\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80media\n|   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80media\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80MOM\n|   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80migrations\n|   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80templatetags\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80userprofile\n|   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80migrations\n|   \xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80__pycache__\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80templates\n|   \xe2\x94\x82    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80MOM\n|   \xe2\x94\x82    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80userprofile\n|   \xe2\x94\x82    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80base.html\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80manage.py\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80requirements.txt\n|   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80db.sqlite3\n|   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80.gitignore [another …
Run Code Online (Sandbox Code Playgroud)

python git django github gitignore

3
推荐指数
1
解决办法
2531
查看次数

索引超出范围 Blazor 复选框

我尝试在 blazor 中创建用户管理。当我单击该复选框时,该复选框将被选中/取消选中。但是当它显示索引超出范围时。我不知道出了什么问题。尝试使用 blazor wasb 即可。请帮忙检查一下。它只是一个基本组件,但不知何故我还不习惯它的用法。
我尝试在 blazor 中创建用户管理。当我单击该复选框时,该复选框将被选中/取消选中。但是当它显示索引超出范围时。我不知道出了什么问题。尝试使用 blazor wasb 即可。请帮忙检查一下。它只是一个基本组件,但不知何故我还不习惯它的用法。

  @page "/manageuserrole/{userId}"
    @inject HttpClient client

@inject IJSRuntime js
@inject NavigationManager uriHelper

<h3>User Roles</h3>


@if (manageUserRolesDto == null)
{
    <text>Loading...</text>
}
@*else if (manageUserRolesDto.Length == 0)
    {
        <text>No Records Found.</text>
    }*@
else
{
    <EditForm Model="@manageUserRolesDto" OnValidSubmit="@UpdateUserRoles">
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>Role</th>
                    <th>Status</th>
                </tr>
            </thead>
            <tbody>
                @for (int i = 0; i < manageUserRolesDto.UserRoles.Count(); i++)
                {
                    <tr>
                        <td>@manageUserRolesDto.UserRoles[i].RoleName</td>
                        <td>
                            <div class="form-check m-1">
                                <input type="checkbox" 
                                       @bind="@manageUserRolesDto.UserRoles[i].Selected" 
                                       />
                            </div>
                        </td>

                    </tr> …
Run Code Online (Sandbox Code Playgroud)

checkbox blazor

2
推荐指数
1
解决办法
1272
查看次数

标签 统计

python ×2

alembic ×1

blazor ×1

checkbox ×1

django ×1

git ×1

github ×1

gitignore ×1

sqlalchemy ×1