您的当前位置:首页关于Django无法同步数据库及数据表的解决办法

关于Django无法同步数据库及数据表的解决办法

2023-11-13 来源:哗拓教育

python manage.py makemigrations2 python manage.py migrate

随后查阅相关资料和官方文档找到解决办法,在此之前,简短描述下问题的起因经过。

1.在项目目录中以及app层目录下,即/project/templates和/project/templates、/project/__pycache__三个文件中记录着关于Django对数据库中的操作记录

2.当需要对数据库进行相关更改的情况下,此三个文件夹会有相关记录,例如第一遍执行了上面两条语句,顺利创建了表,后续又删除了表,此中记录并不会被删除,当执行第一条语句的情况下,Django查阅三个文件中的记录以后,发现已经执行了相关操作,也就并不会继续创建表。

在这里并不列举亲测过并不成功的方法,以下按照顺序执行,即可解决问题:

1.在数据库中的目标表存在的情况下,应当删除这些目标表,比如需要对user表进行更改,那么先删除user表,如果需要对data表进行更改,便删除user表,以此类推。

2.删除在项目目录中以及app层目录下,即/project/templates和/project/templates、/project/__pycache__三个文件,如果是文件夹,直接删除文件夹,如果是文件,直接删除文件。

比如  ../项目/  和  ../项目/app01  这样的路径.

上述两步执行完毕后执行下面三条语句:

1 # 此命令用于制作一个空的迁移文件(Django会将文件放在正确的位置,提供一个名称,并为您添加依赖项)2 python manage.py makemigrations --empty 你的app名3 python manage.py makemigrations4 python manage.py migrate

即可完成models中数据库变更操作。

关于Django无法同步数据库及数据表的解决办法

标签:migration   情况下   记录   ati   --   文件   位置   依赖   app   

小编还为您整理了以下内容,可能对您也有帮助:

新手求助 django和mysql数据迁移失败

如果你的mysql也出现以上这种提示,

建议你逐个字看完我这篇文章再按以下方法来尝试解决问题.

这是mysql数据库很多时候出现的问题, 网上流传很多解决办法. 有人按照那些方法, 还真可以把问题解决了; 但也有很多人按那些方法解决不了问题!

而这个中原因, 就是没有对症下药!!!

网上的那些方法, 很多都没有明确指出是什么版本的mysql, 所以导致问题者不能对症下药.

出现这个问题, 通过停止/重启 mysql 服务, 是可以解决的, 这个是最简单的办法! 对于不懂得什么叫做"停止/重启mysql服务"的人来说,

这个最简单的办法就是把服务器主机进行重新启动(就是把你的电脑进行重新启动).

以上是方法A! (这个方法适合任何版本的mysql)

以下是方法B:(方法仅适用于MySQL4.0.26 版本!!! (我估计,

4.0的其他版本应该也可以的))

网上也有说, 就是对root进行重改密码. 对于网上流传的改密码方法, 也是可行的. 请参考以下:

DOS下修改ROOT密码:当然后面安装PHPMYADMIN后修改密码也可以通过PHPMYADMIN修改

格式:mysqladmin -u用户名 -p旧密码 password

新密码

例:给root加个密码ideacmblog

首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令

mysqladmin

-uroot password ideacmblog

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

D:\php\MySQL\bin>mysqladmin -uroot password

ideacmblog回车后ROOT密码就设置为ideacmblog了

但是, 请注意了, 以上方法仅适用于MySQL4.0.26

版本!!! (我估计, 4.0的其他版本应该也可以的)

方法C:

好了, 扯了那么多, 以上的两个方法都不是我本人测试过的, 本人不对真实性负责!

而现在我说一下本人亲自试过的方法, 以供参考:

话说今天, 我的服务器所有php及使用了mysql数据库的网站, 均挂掉了! 无法打开,

并有以下提示:

错误代码 1045

Access denied for

user 'root'@'localhost' (using password:YES)

一开始我也是不断搜索google(我本人不喜欢百度!),

去找寻解决的办法. 看了很多, 也参照执行了, 事实上也是解决不了问题. 后来我想到了是版本的问题, 不同的mysql版本,

解决办法是不一定一样的!!记住...

我的mysql版本是: 5.0.22

(mysql-essential-5.0.22-win32)

今天一整天, 那些php网站均罢工. 到今晚才有时间上去服务器继续寻找方法, 但仍然解决不了.

最后, 我决定把mysql卸掉重新安装!

卸载很快, 而且不需要重新启动计算机.

于是, 继续进行安装.

第一步:

打开这个mysql-essential-5.0.22-win32.exe文件;

第二步: 见到窗口弹出, 并点击 Next>

进入下一步;

第三步: 选择 Custom 项, 并点击

Next> 进入下一步;

第四步: 到这一步要注意了, 点击

Change... 选择你原安装mysql的目录; 选择后, 继续点击Next> 进入下一步;

第五步: 点击 Install

进行安装...

安装至下一步, 会提示你进行注册, 选择最后一项, 即跳过注册,

进入下一步正式完成安装.

安装完成后, 继续弹出一个窗口, 提示你是不是立刻进行配置,

选择 Next

选择Standard Configuration.继续点击

Next 进入下一步

这一步里, 把上面那行的勾去掉, 只在 Include

....PATH 那行打勾, 继续点击 Next 进入下一步

在这一步, 点击中间的"Ex****"那顶,

接着配置完毕!

这时候, 你去看看你的mysql正常了没有??

!!

这样就ok了!!!

Django处理与数据库的连接问题,怎么解决

由于创建连接的代价是很高的, 我们每次访问数据库都重新创建连接的话是非常消耗性的.

我们可以再程序启动的时候先创建出一些连接, 放在一个集合中, 访问数据库的时候从集合中获取, 使用结束再放回集合中.

这样做只是在程序启动的时候消耗性能去创建连接, 每次访问数据库的时候都是从内存中获取连接, 可以大大提升效率.

注意事项:
由于池中增删非常频繁, 使用集合LinkedList效率较高
集合中所有连接都被占用时创建新连接, 但需要注意连接总数
使用组合模式/动态代理处理释放连接的方法, 当运行close方法时, 将连接放回池中
关于数据库连接池:
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被 使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超 过最大连接数量时,这些请求将被加入到等待队列中。

Django处理与数据库的连接问题,怎么解决

由于创建连接的代价是很高的, 我们每次访问数据库都重新创建连接的话是非常消耗性的.

我们可以再程序启动的时候先创建出一些连接, 放在一个集合中, 访问数据库的时候从集合中获取, 使用结束再放回集合中.

这样做只是在程序启动的时候消耗性能去创建连接, 每次访问数据库的时候都是从内存中获取连接, 可以大大提升效率.

注意事项:
由于池中增删非常频繁, 使用集合LinkedList效率较高
集合中所有连接都被占用时创建新连接, 但需要注意连接总数
使用组合模式/动态代理处理释放连接的方法, 当运行close方法时, 将连接放回池中
关于数据库连接池:
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被 使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超 过最大连接数量时,这些请求将被加入到等待队列中。

求教,django的数据库错误的解决方法

(1)site matching query does not exist. lookup parameters were 'pk' 1

一般发生在数据库没有设置好,直接开启adminSite并运行了syncdb,造成数据结构不全,重新删除所有DJANGO_*,AUTH_*后重新运行syncdb问题解决。

(2) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5 in position 17: ordinal

有可能是由于数据库无法连接造成,检查数据库连接是否正常。将数据库配置改成以下配置,测试问题是否解决:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': 'D:/android/workspace/qi/qisite/sqlite3.db',

}

}

(3) 直接访问django服务页面提示403,主要原因目前使用的http client不支持 cookie

在setting.py中将CsrfViewMiddleware注释掉

MIDDLEWARE_CLASSES = (

...

#'django.middleware.csrf.CsrfViewMiddleware',

...

)

pycharm+django怎么同步数据库

如果是同一种数据库的话,你同步的数据表结构是否相同,如果也相同的话,完全可以利用数据库的同步复制机制来解决;
(做主从) 如果表结构不相同的话,如果不在应用层处理的话,有两种方式参考:
1,A推数据给B;A有数据的时候,实时或非实时(采用event或trigger)将数据推到B中,B再做处理;
2,B从A拉数据,用一个event(mysql中的job)定时从A中拉数据然后进行处理;
另外可以选择在应用层来做,这个我就不多介绍了,根据业务逻辑coding就行了。

pycharm+django怎么同步数据库

如果是同一种数据库的话,你同步的数据表结构是否相同,如果也相同的话,完全可以利用数据库的同步复制机制来解决;
(做主从) 如果表结构不相同的话,如果不在应用层处理的话,有两种方式参考:
1,A推数据给B;A有数据的时候,实时或非实时(采用event或trigger)将数据推到B中,B再做处理;
2,B从A拉数据,用一个event(mysql中的job)定时从A中拉数据然后进行处理;
另外可以选择在应用层来做,这个我就不多介绍了,根据业务逻辑coding就行了。

求教,django的数据库错误的解决方法

错误代码 1045

Access denied for user 'root'@'localhost'

(using password:YES)

如果你的mysql也出现以上这种提示,

建议你逐个字看完我这篇文章再按以下方法来尝试解决问题.

这是mysql数据库很多时候出现的问题, 网上流传很多解决办法. 有人按照那些方法, 还真可以把问题解决了; 但也有很多人按那些方法解决不了问题!

而这个中原因, 就是没有对症下药!!!

网上的那些方法, 很多都没有明确指出是什么版本的mysql, 所以导致问题者不能对症下药.

出现这个问题, 通过停止/重启 mysql 服务, 是可以解决的, 这个是最简单的办法! 对于不懂得什么叫做"停止/重启mysql服务"的人来说,

这个最简单的办法就是把服务器主机进行重新启动(就是把你的电脑进行重新启动).

以上是方法A! (这个方法适合任何版本的mysql)

以下是方法B:(方法仅适用于MySQL4.0.26 版本!!! (我估计,

4.0的其他版本应该也可以的))

网上也有说, 就是对root进行重改密码. 对于网上流传的改密码方法, 也是可行的. 请参考以下:

DOS下修改ROOT密码:当然后面安装PHPMYADMIN后修改密码也可以通过PHPMYADMIN修改

格式:mysqladmin -u用户名 -p旧密码 password

新密码

例:给root加个密码ideacmblog

首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令

mysqladmin

-uroot password ideacmblog

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

D:\php\MySQL\bin>mysqladmin -uroot password

ideacmblog回车后ROOT密码就设置为ideacmblog了

但是, 请注意了, 以上方法仅适用于MySQL4.0.26

版本!!! (我估计, 4.0的其他版本应该也可以的)

方法C:

好了, 扯了那么多, 以上的两个方法都不是我本人测试过的, 本人不对真实性负责!

而现在我说一下本人亲自试过的方法, 以供参考:

话说今天, 我的服务器所有php及使用了mysql数据库的网站, 均挂掉了! 无法打开,

并有以下提示:

错误代码 1045

Access denied for

user 'root'@'localhost' (using password:YES)

一开始我也是不断搜索google(我本人不喜欢百度!),

去找寻解决的办法. 看了很多, 也参照执行了, 事实上也是解决不了问题. 后来我想到了是版本的问题, 不同的mysql版本,

解决办法是不一定一样的!!记住...

我的mysql版本是: 5.0.22

(mysql-essential-5.0.22-win32)

今天一整天, 那些php网站均罢工. 到今晚才有时间上去服务器继续寻找方法, 但仍然解决不了.

最后, 我决定把mysql卸掉重新安装!

卸载很快, 而且不需要重新启动计算机.

于是, 继续进行安装.

第一步:

打开这个mysql-essential-5.0.22-win32.exe文件;

第二步: 见到窗口弹出, 并点击 Next>

进入下一步;

第三步: 选择 Custom 项, 并点击

Next> 进入下一步;

第四步: 到这一步要注意了, 点击

Change... 选择你原安装mysql的目录; 选择后, 继续点击Next> 进入下一步;

第五步: 点击 Install

进行安装...

安装至下一步, 会提示你进行注册, 选择最后一项, 即跳过注册,

进入下一步正式完成安装.

安装完成后, 继续弹出一个窗口, 提示你是不是立刻进行配置,

选择 Next

选择Standard Configuration.继续点击

Next 进入下一步

这一步里, 把上面那行的勾去掉, 只在 Include

....PATH 那行打勾, 继续点击 Next 进入下一步

在这一步, 点击中间的"Ex****"那顶,

接着配置完毕!

这时候, 你去看看你的mysql正常了没有??

!!

这样就ok了!!

为什么django创建新应用model同步到数据库中失败?

报错 mole 'django.db.models' has no arrtbute 'Models'
models.Model 这个后面大写的对象是没有s 的,字母拼写错误
正确的如下:
class Topic(models.Model):

为什么django创建新应用model同步到数据库中失败?

报错 mole 'django.db.models' has no arrtbute 'Models'
models.Model 这个后面大写的对象是没有s 的,字母拼写错误
正确的如下:
class Topic(models.Model):

为什么django创建应用model同步到数据库中失败?

1.配置数据库

技术图片

2.激活模型

让当前工程包含当前app

技术图片

如果不添加的话会发生以下错误

技术图片

3.

技术图片

makemigrations会在当前目录下生成一个migrations文件夹,该文件夹的内容就是数据库要执行的内容

python manage.py makemigrations
migrate就是执行之前生成的migrations文件,这一步才是操作数据库的一步

python manage.py migrate

可以看到此时数据库还没有变化。

 

技术图片

通过python manage.py sqlmigrate vote 0001 命令可以看到产生的sql语句。

技术图片

输入 python manage.py migrate

技术图片

从下图可以看到数据库表已经创建成功了。

技术图片

 

django从零开始(2)models与数据库

标签:工程   ons   数据   从零开始   语句   sql   执行   man   mod   

为什么django创建应用model同步到数据库中失败?

1.配置数据库

技术图片

2.激活模型

让当前工程包含当前app

技术图片

如果不添加的话会发生以下错误

技术图片

3.

技术图片

makemigrations会在当前目录下生成一个migrations文件夹,该文件夹的内容就是数据库要执行的内容

python manage.py makemigrations
migrate就是执行之前生成的migrations文件,这一步才是操作数据库的一步

python manage.py migrate

可以看到此时数据库还没有变化。

 

技术图片

通过python manage.py sqlmigrate vote 0001 命令可以看到产生的sql语句。

技术图片

输入 python manage.py migrate

技术图片

从下图可以看到数据库表已经创建成功了。

技术图片

 

django从零开始(2)models与数据库

标签:工程   ons   数据   从零开始   语句   sql   执行   man   mod   

python django 连接sqlserver2005数据库 经常连接失败

哦。如果真的存在这样的问题,可能有几个方面。
一个是网络环境本身不好。甚至还有网络防火墙。
第二个原因可能是sqlserver2005自身的配置。关于长链接的维持,会话失效时间的设置。
第三个原因是所用的驱动程序。我印象中有几种。我在linux上用了一种很稳定,连接sql server一直没有发现问题。我是直接驱动的。没有经过django。
第四,你在django访问的时候,如果发现连接错误,可以要求数据重新连接。这个以前我似乎配置过,几年不用了。
第五,可能与你采集的数据有关。你的数据中是否存在数据太大。下载时间过长。以及不合法数据。这些也可能导致django出错。显示为连接失败。估计是数据错误。

python django 连接sqlserver2005数据库 经常连接失败

哦。如果真的存在这样的问题,可能有几个方面。
一个是网络环境本身不好。甚至还有网络防火墙。
第二个原因可能是sqlserver2005自身的配置。关于长链接的维持,会话失效时间的设置。
第三个原因是所用的驱动程序。我印象中有几种。我在linux上用了一种很稳定,连接sql server一直没有发现问题。我是直接驱动的。没有经过django。
第四,你在django访问的时候,如果发现连接错误,可以要求数据重新连接。这个以前我似乎配置过,几年不用了。
第五,可能与你采集的数据有关。你的数据中是否存在数据太大。下载时间过长。以及不合法数据。这些也可能导致django出错。显示为连接失败。估计是数据错误。

Django如何更新数据库(django批量更新数据库)

最简单的办法是。为数据库的表建立一个model。具体做法是这样子。

1.在settings.py里设置数据库连接方式。连接错误后面都没有办法

2.在models设置一个数据库表的对应数据结构,通常叫关系对象模型,所以叫model,它就是一个类。你可以用django-admin.py...probe,似乎是这个命令,就是一个数据库的探测命令,可以根据表,自动生成model的代码。当然如果你先写了model的代码就可以用syncdb命令生成数据库的表

3.在urls.py里设置一个URL的path,当浏览器访问这个path时就可以打开对应的view中的函数

4.在view里

4.1result=modelclass.objects.all()这个命令可以取出所有的记录

4.2然后你可以直接将结果传递给模板。由模板显示。这是最合理的办法

4.3在模板里{%forcolsinresult%}

4.4

cols.field1

大约就是这样子。可能说的太粗。你对着教程看就知道了。

Django如何更新数据库(django批量更新数据库)

最简单的办法是。为数据库的表建立一个model。具体做法是这样子。

1.在settings.py里设置数据库连接方式。连接错误后面都没有办法

2.在models设置一个数据库表的对应数据结构,通常叫关系对象模型,所以叫model,它就是一个类。你可以用django-admin.py...probe,似乎是这个命令,就是一个数据库的探测命令,可以根据表,自动生成model的代码。当然如果你先写了model的代码就可以用syncdb命令生成数据库的表

3.在urls.py里设置一个URL的path,当浏览器访问这个path时就可以打开对应的view中的函数

4.在view里

4.1result=modelclass.objects.all()这个命令可以取出所有的记录

4.2然后你可以直接将结果传递给模板。由模板显示。这是最合理的办法

4.3在模板里{%forcolsinresult%}

4.4

cols.field1

大约就是这样子。可能说的太粗。你对着教程看就知道了。

如何解决Django 1.8在migrate时失败

1.首先,这个问题发生在 Fedora 22 的机器上,但是也很可能发生在其他系统(包括windows)上,所以依然可以参考,但是不保证有效。

此外,你必须已经设定好了 settings.py 里面的数据库。类似下图。

2.初次使用 python manage.py migrate 命令提示模块 MySQLdb 缺失。这个是一个 连接python 和 MySQL 的模块。错误日志如图:

3.于是条件反射,知道要安装 MySQLdb 模块。它对应的库名词为 mysql-python。如果直接安装会出现下列错误:

缺失这样一个头文件:my_config.h

4.必须在安装前补充一个 mysql-devel 的程序。即:

sudo dnf install mysql-devel

这样就能补充这个头文件my_config.h了。

5.然后安装 mysql-python 库,输入:

sudo pip install mysql-python

成功安装,如图:

6.然后再运行:

python manage.py migrate

这时你就能看到心旷神怡的绿色的OK了!

仅在 fedora 22 上通过测试,其他不保证成功,但是可以参考。

显示全文