标签: django-database

有没有办法用模型中的更改来更新数据库?

可能重复:
更新django数据库以反映现有模型的更改

我过去曾经使用过Django,而我作为ORM工具遇到的挫折之一就是无法通过模型中的更改来更新现有数据库.(Hibernate做得非常好,使得更新和大量修改模型并将其应用到现有数据库非常容易.)有没有办法在不 每次擦除数据库的情况下执行此操作?在我想要玩的模型中的每次更改之后,必须重新生成管理员用户和网站变得非常古老.

django django-models django-database django-syncdb

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

获取错误 - 无法添加或更新子行:django中的旧数据库的外键约束失败

我最近从原始php移植到django并且必须将我的遗留数据库合并到其中.我使用该inspectdb命令从数据库中构建模型,一切正常.

最近,我决定增加的功能likeset to favorite.所以我添加了一个新表,如下所示.

class SongCollection(models.Model):
    song_name = models.TextField()
    song_type = models.CharField(max_length=765)
    likes = models.IntegerField(default=0)

    class Meta:
        db_table = u'songcollection'


class likeSong(models.Model):

    user = models.ForeignKey(User)
    company = models.ForeignKey(SongCollection)
Run Code Online (Sandbox Code Playgroud)

第一个是我的原创class,另一个是用于存储哪个用户喜欢哪首歌.我正在使用完全开发的其他应用程序中的确切结构django,它们工作正常.但是当我尝试添加一个对象时,likeSong我得到以下错误.

Cannot add or update a child row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)

我也试图从MySql命令行添加这个对象,以便检查这是否是一个Django错误,但它也失败了.任何人都可以帮我理解这里究竟出了什么问题吗?

mysql django-models django-database

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

如何在django views.py中运行管理命令

我将在我当前的应用程序中使用django-dbbackup.我的任务是在从UI按下"备份数据库"按钮时使用custom_name.db备份我最新的sqlite3数据库,并在按下"恢复此备份"时从现有备份列表中恢复备份.

在django-dbbackup中有两个管理命令,dbbackup和dbrestore用作

dbbackup [-s <servername>] [-d <database>] [--clean] [--compress] [--encrypt]
Run Code Online (Sandbox Code Playgroud)

dbrestore [-d <database>] [-s <servername>] [-f <localfile>]
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如果我有原始数据库名称original_db.db并且我想将此db重命名备份为db_current_data_time.db,那么views.py方法应该是什么?

python django django-database

3
推荐指数
2
解决办法
2594
查看次数

django 1.5 select_for_update被认为是脆弱的设计

Django文档状态

如果你依靠"自动事务"在select_for_update()和后续的写操作之间提供锁定 - 一个极其脆弱的设计,但仍然可能 - 你必须将相关代码包装在atomic()中.从Django 1.6.3开始,在自动提交模式下使用select_for_update()执行查询将引发TransactionManagementError.

为什么这被认为是脆弱的?我原以为这会导致适当的交易.

python django django-database

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

django.db.migrations.exceptions.CircularDependencyError

我在空DB上进行django迁移时遇到问题.什么时候,我想迁移我有一个循环依赖错误.ForeignKeys相关的两个应用程序之间的循环依赖性错误

/firstapp/models.py

 class Person(models.Model):
    genders_list = (
        ('m', 'Male'),
        ('f', 'Female'),
    )

    user_field = models.OneToOneField(User, on_delete=models.CASCADE)
    gender = models.CharField(max_length=1, choices=genders_list, default='m')
    phone_1  = models.CharField(max_length=25, verbose_name="Phone number")
    phone_2  = models.CharField(max_length=25, verbose_name="Phone number 2", blank=True)

    def __str__(self):
        return self.user_field.first_name + self.user_field.last_name

class Doctor(Person):
    job_position = models.CharField(max_length=255, verbose_name="Job position")
    hospital_field = models.ForeignKey('hospital.Hospital', on_delete=models.SET_NULL, null=True, default=None,blank = True)
    seat_field = models.ForeignKey('hospital.Seat', on_delete=models.SET_NULL, null=True, default=None,blank = True)

class Patient(Person):
    doctor_field = models.ForeignKey('Doctor', on_delete=models.SET_NULL, null=True, default=None)
Run Code Online (Sandbox Code Playgroud)

/secondapp/models.py

class Hospital(models.Model):
    name = models.CharField(max_length=255, verbose_name="Name")
    description = models.TextField(verbose_name="Description") …
Run Code Online (Sandbox Code Playgroud)

python django django-database django-migrations

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

导出到Python Django中的SPSS文件?

我需要在Python(Django)中将数据导出为SPSS文件格式,但我无法在谷歌中找到util信息.

有办法做到这一点吗?有人尝试过吗?

提前致谢!

python django spss django-database

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

存储用户信息Django

对于网站上的用户,使用数据库在Django中存储信息的最佳方式是什么.我正在处理的网站有以下几个部分:

  1. 一种用户可以发表评论的聊天室.
  2. 一组向其他用户公开的文档.
  3. 每个文档的评论

问题是,文件应存放在何处?(我不知道每个人会有多少人).对于每个文档,评论应存储在何处?(我不知道会有多少评论).

我对Django很新,并且刚开始我买的那本书,但需要开始计划才能在八月份完成它(这对于一个如此新的人来说甚至可能吗?).

python sql django django-database web

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

Django 1.6 中的 connection.cursor() 线程安全吗?

AFAIK 在 Django 1.6 中,游标在请求之间共享,并在需要时打开一个新连接。但是,我找不到有关 connection.cursor() 方法如何工作以及如何在文档中的不同进程中使用 connection.cursor() 方法的任何信息。

我见过的大多数代码都没有关闭从 connection.cursor() 返回的游标对象,所以我假设 Django 在请求完成时自动关闭从 connection.cursor() 返回的游标对象,但是如果我调用 connection.cursor() 呢? ) 在不同的过程中?我应该在终止进程时关闭该游标还是游标的包装函数自动杀死自己?

python django cursor multiprocessing django-database

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

删除数据库后表“django_migrations”已存在

我最近遇到了一个数据库问题,所以我决定用核武器攻击它,因为我没有重要的数据。我删除了应用程序目录中的迁移文件夹并删除了数据库。但是现在,当我重新创建所有内容时,manage.py migrate出现以下错误:

  File "../manage.py", line 21, in <module>
    main()
  File "../manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/migrate.py", line 234, in handle
    fake_initial=fake_initial,
  File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/executor.py", line 91, in migrate
    self.recorder.ensure_schema()
  File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/recorder.py", line 69, in ensure_schema …
Run Code Online (Sandbox Code Playgroud)

django django-database mariadb

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

为什么 django 不使用“migrate”命令创建数据库表

我是 Django 新手,由于某些奇怪的原因,我的模型没有创建数据库表,并且完全不知道为什么。当我运行命令:“python manage.py makemigrations”时,我在控制台输出中显示以下内容:

Migrations for 'auctions':
  auctions/migrations/0001_initial.py
  - Create model User
  - Create model Item
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是准确的。然后我运行命令:“python manage.py migrate”,控制台输出中显示以下内容。

Operations to perform:
  Apply all migrations: accounts, admin, auctions, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.
Run Code Online (Sandbox Code Playgroud)

查看数据库,果然没有创建任何内容。以下是我的 models.py 文件的输出:

from django.contrib.auth.models import AbstractUser
from django.db import models



class User(AbstractUser):
    def __str__(self):
        return f"{self.first_name}"


class Item(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="item_list")
    title = models.CharField(max_length=64)
    description = models.CharField(max_length=256, blank=True)
    img_url = models.CharField(max_length=256, blank=True)
    starting_bid = models.DecimalField(decimal_places=2, max_digits=8)
    category = models.CharField(max_length=24, …
Run Code Online (Sandbox Code Playgroud)

python django database-migration django-models django-database

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