从命令行创建项目

时间:2012-11-08 16:27:50

标签: python django deployment sentry

Sentry从客户端应用程序中捕获日志和错误。

我知道在Sentry中创建项目的唯一方法是在Web应用程序界面中手动提交表单。

我正在寻找一种从命令行以任何方式创建项目到Sentry的方法(选项,配置文件)?

这对部署脚本非常有用。否则无法实现自动化。

在谷歌搜索时发现了这个讨论,但没有答案:

https://groups.google.com/d/topic/getsentry/pWglAEHaPUk/discussion

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

这是a django project,当然你可以:

from sentry.models import Project
project = Project(...)
...
project.save()

修改:您可以write a custom management command在命令行上获取功能

按问题编辑编辑:是的确它是一个django项目,所以像django项目一样,我通过以下三个步骤自动部署:

  1. 启动Sentry,创建用户,团队和项目,并从管理Web界面调整设置
  2. 像任何django项目一样运行dumpdata(sentry将隐式调用manage.py):

    sentry --config=sentry.conf.py dumpdata --indent=2 auth > auth_data.json

    sentry --config=sentry.conf.py dumpdata --indent=2 sentry > sentry_data.json

  3. 逐步部署:

    sentry --config=sentry.conf.py syncdb --noinput

    sentry --config=sentry.conf.py migrate

    sentry --config=sentry.conf.py loaddata auth_data.json

    sentry --config=sentry.conf.py loaddata sentry_data.json

  4. 效果很好。希望这会对其他人有所帮助。

答案 1 :(得分:1)

正如Sentry's docs中所述:

# Bootstrap the Sentry environment
from sentry.utils.runner import configure
configure()

# Do something crazy
from sentry.models import Team, Project, User

user = User()
user.username = 'admin'
user.email = 'admin@localhost'
user.is_superuser = True
user.set_password('admin')
user.save()

team = Team()
team.name = 'Sentry'
team.owner = user
team.save()

project = Project()
project.team = team
project.owner = user
project.name = 'Default'
project.save()

key = ProjectKey.objects.filter(project=project)[0]
print 'SENTRY_DSN = "%s"' % (key.get_dsn(),)

https://docs.getsentry.com/on-premise/server/faq/