Google App Engine数据存储区迁移

时间:2014-07-24 14:04:40

标签: google-app-engine csv migration google-cloud-datastore

我有一个以下格式的CSV文件:

Username, Password_Hash
noam    , ************
paz     , ************

我想将此CSV导入我的数据存储区,因此可以使用此模型从python访问数据:

class Company(ndb.Model):
    Username = ndb.StringProperty()
    Password_Hash= ndb.StringProperty(indexed=False)

当然,逐个手动导入不是一种选择,因为真实文件非常大。 我不知道gcloud preview datastore upload is based on使用的文件结构。

Google在此问题上缺乏良好的文档。

2 个答案:

答案 0 :(得分:2)

没有神奇的迁移方式。您需要编写一个程序来读取文件并逐个保存到数据存储区。编写这个程序并不是特别困难。只要需要就给它,它不会永远......

答案 1 :(得分:2)

如下:

from google.appengine.api import urlfetch
from models import Company

def do_it(request):
    csv_string = 'http://mysite-or-localhost/table.csv'
    csv_response = urlfetch.fetch(csv_string, allow_truncated=True)

    if csv_response.status_code == 200:

       for row in csv_response.content.split('\n'):
           if row != '' and not row.lower().startswith('Username,'):
               row_values = row.split(',')

               new_record = Company(
                    Username = row_values[0], 
                    Password_Hash = row_values[1]
               )
               new_record.put()

    return Response("Did it", mimetype='text/plain')