2016-09-23 10 views
1

私は既に公開されているプロジェクトに取り組んでいますので、の注文のオブジェクトとのユーザーのオブジェクト(数人の人が登録して注文しました)が公開されています。Djangoでデータと認証情報をエクスポートしてインポートするには?

今、私は注文モデルを含め、このプロジェクトではいくつかのことを変更しています(などcreated_timeのようないくつかのフィールドを追加しました)

だから私の新しいデータベース(sqlite3のは)古いに比べて非常に類似したスキーマを持っていますが、それはありません同じ。

古いユーザーを追加するにはどうすればいいですか?オブジェクトを新しいデータベースに注文しますか?いくつかのプラグインやベストプラクティスはありますか?

ユーザースキーマは変更されていませんが、app_usersテーブルではコピーできません。

class Order(models.Model): 
    customer = models.ForeignKey(User, related_name='orders', blank=True, null=True) 
    first_name = models.CharField(max_length=40,verbose_name=u'Vorname') 
    last_name = models.CharField(max_length=40,verbose_name=u'Nachnahme') 
    dry_wood = models.PositiveIntegerField(blank=True, null=True, default=0,verbose_name=u'Trockenes Holz') 
    wet_wood = models.PositiveIntegerField(blank=True, null=True, default=0,verbose_name=u'Halb trockenes Holz') 
    briquette = models.PositiveIntegerField(blank=True, null=True, default=0,verbose_name=u'Brikettes') 
    stelinka = models.PositiveIntegerField(blank=True, null=True, default=0,verbose_name=u'Klein Holz') 
    street = models.CharField(max_length=200, verbose_name=u'Straße', null=True, blank=True) 
    number = models.CharField(max_length=40, null=True, blank=True, verbose_name=u'Hausnummer') 
    city = models.CharField(max_length=100, verbose_name=u'Stadt', null=True, blank=True) 
    psc = models.CharField(max_length=40, null=True, blank=True, verbose_name=u'PLZ') 
    telephone = models.CharField(max_length=50, null=True, blank=True, verbose_name=u"Telefon Nummer") 
    telephone2 = models.CharField(max_length=50, null=True, blank=True, verbose_name=u'Telefon 2') 

    email = models.EmailField(null=True, blank=True,verbose_name=u'Mail') 
    time = models.TextField(null=True, blank=True, verbose_name=u'Kommentar') 
    price = models.DecimalField(max_digits=20, decimal_places=2, blank=True, null=True) 
    text_order = models.TextField(blank=True, null=True, verbose_name=u'Kommentar') 
    confirmed = models.BooleanField(default=False, verbose_name=u'Potvrdená zákazníkom') 
    done = models.BooleanField(default=False, verbose_name=u'Vybavená') 
    TYPE_CHOICES = (('wholesale', u'Veľkoodber'), 
        ('retail', u'Maloodber')) 
    type = models.CharField(max_length=40, choices=TYPE_CHOICES, default='retail') 

    created = models.DateTimeField(auto_now_add=True, blank=True, null=True) 

    LENGTH_OF_DRY_WOOD_CHOICES = (('1.0','1.0'), 
            ('0.5', '0.5'), 
            ('0.33', '0.33'), 
            ('0.25', '0.25')) 

    LENGTH_OF_WET_WOOD_CHOICES = (('1.0','1.0'), 
            ('0.5', '0.5'), 
            ('0.33', '0.33'), 
            ('0.25', '0.25')) 

    length_of_dry_wood = models.CharField(max_length=40, choices=LENGTH_OF_DRY_WOOD_CHOICES, default='0.5', null=True, blank=True,verbose_name=u'Länge des Holzes (Trockenes Holz)') 
    length_of_wet_wood = models.CharField(max_length=40, choices=LENGTH_OF_WET_WOOD_CHOICES, default='0.5', null=True, blank=True,verbose_name=u'Länge des Holzes') 

    backuped = models.BooleanField(default=False) 
    class Meta: 
     verbose_name = u'Objednávka' 
     verbose_name_plural = u'Objednávky' 

    def save(self, *args, **kwargs): 
     if self.type == 'retail': 
      self.price = Price.calculate_price(self.dry_wood, self.wet_wood, self.briquette, self.stelinka)['total'] 
     else: 
      self.price = 0 

     super(Order, self).save(*args, **kwargs) 



    def __str__(self): 

     return u'Objednávka {} | {} {} | {} € {} {}'.format(self.id, self.first_name, self.last_name, self.price, u'| >>>>>>> NEPOTVRDENÁ <<<<<<<' if not self.confirmed else '', 
                  u'| >> VYBAVENÁ <<' if self.done else '') 

    def __unicode__(self): 
     return self.__str__() 
+0

は更新したいんモデル内のデータか、DB内のデータのみ?最後に、フィクスチャを使用してください:http://stackoverflow.com/documentation/django/4933/database-setup/17482/fixtures – FeedTheWeb

+0

これはおそらく私が探しているものです。私はそれをチェックするつもりです。 –

+0

これはモデル化するフィールドが追加されていても機能します。あなたが望むなら、それを答えとして掲示することができます。ありがとう –

答えて

1

備品は、ローカルマシン

./manage.py dumpdata mytable > databasedump.json 

上のデータをダンプし、リモートでそれをインポートするには、このhttps://docs.djangoproject.com/en/dev/howto/initial-data/

のために使用することができます。

./manage.py loaddata databasedump.json 
+0

直接makemigrationは動作しませんか? –

+1

@ PiyushS.Wanareの移行は、コンテンツ用ではなく、データセットセットなどを作成するためのものです。 (ただし、いくつかの作業で初期データを移行することができますが、フィクスチャを使用してデータをインポート/エクスポートする方が理にかなっています)。 – FeedTheWeb

関連する問題