我在Windows服务器2012上安装了一个Django应用程序,该应用程序使用sqlite3作为数据库进行设置,但它已投入生产,因此我将表格迁移到服务器上的oracle 11g,我不知道#39; t只关心表中的数据所以当我运行时
python manage.py migrate
我收到ORA-2000错误:缺少ALWAYS关键字
我是django和网站的新手,我缺少什么?
数据库设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'orcl',
'USER': 'hr',
'PASSWORD': 'hr',
'HOST': 'localhost',
'PORT': '1521',
},
'OPTIONS': {
'timeout': 20,
'threaded': True,
}}
型号:
class ForecastSummary(models.Model):
party=models.ForeignKey(PartyDetailsFinal,on_delete=models.CASCADE,null=True)
annual_price = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
annual_HW = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
annual_SW = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
annual_total = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
back_maintenance = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'),
blank=True )
forecast_year0 = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
forecast_year1 = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
forecast_year2 = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
forecast_year3 = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
forecast_year4 = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
forecast_year5 = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'), blank=True,
null=True)
forecast_total_0to3_years = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'),
blank=True )
forecast_total_0to5_years = models.DecimalField(max_digits=100, decimal_places=5, default=Decimal('0.00000'),
blank=True )
def __str__(self):
return "Instance Number =" + str(self.party.item_instance_number)
答案 0 :(得分:0)
我在12.2.0.1数据库上尝试了你的CREATE TABLE语句,但它确实有效。另见this question。您可以使用明确支持Oracle DB版本的cx_oracle版本,也可以将数据库升级到Oracle 12。