Ce travail est repris et complété par l'outil [[gitlab>Tycho/WebNeL|WebNeL]]. ====== Modèles Django des bases de données ====== Les sources ci dessous son issues de fichiers créés par la commande python manage.py inspectdb Ils reprennent la structure des bases de données nel, pour être utilisées dans une application Django. C'est assez brut comme info, mais directement utilisable par un dev. ===== Base nel ===== from django.db import models class Domain(models.Model): domain_id = models.AutoField(primary_key=True) domain_name = models.CharField(unique=True, max_length=32) status = models.CharField(max_length=13) patch_version = models.IntegerField() backup_patch_url = models.CharField(max_length=255, blank=True, null=True) patch_urls = models.TextField(blank=True, null=True) login_address = models.CharField(max_length=255) session_manager_address = models.CharField(max_length=255) ring_db_name = models.CharField(max_length=255) web_host = models.CharField(max_length=255) web_host_php = models.CharField(max_length=255) description = models.CharField(max_length=200, blank=True, null=True) class Meta: db_table = 'domain' class Permission(models.Model): permissionid = models.AutoField(db_column='PermissionId', primary_key=True) # Field name made lowercase. uid = models.IntegerField(db_column='UId') # Field name made lowercase. domainid = models.IntegerField(db_column='DomainId') # Field name made lowercase. shardid = models.IntegerField(db_column='ShardId') # Field name made lowercase. accessprivilege = models.CharField(db_column='AccessPrivilege', max_length=19) # Field name made lowercase. class Meta: db_table = 'permission' class Shard(models.Model): shardid = models.IntegerField(db_column='ShardId', primary_key=True) # Field name made lowercase. domain_id = models.IntegerField() wsaddr = models.CharField(db_column='WsAddr', max_length=64, blank=True, null=True) # Field name made lowercase. nbplayers = models.IntegerField(db_column='NbPlayers', blank=True, null=True) # Field name made lowercase. name = models.CharField(db_column='Name', max_length=255, blank=True, null=True) # Field name made lowercase. online = models.IntegerField(db_column='Online', blank=True, null=True) # Field name made lowercase. version = models.CharField(db_column='Version', max_length=64) # Field name made lowercase. fixedsessionid = models.IntegerField(db_column='FixedSessionId') # Field name made lowercase. state = models.CharField(db_column='State', max_length=13) # Field name made lowercase. motd = models.TextField(db_column='MOTD') # Field name made lowercase. class Meta: db_table = 'shard' class User(models.Model): uid = models.AutoField(db_column='UId', primary_key=True) # Field name made lowercase. login = models.CharField(db_column='Login', unique=True, max_length=64) # Field name made lowercase. password = models.CharField(db_column='Password', max_length=106, blank=True, null=True) # Field name made lowercase. shardid = models.IntegerField(db_column='ShardId') # Field name made lowercase. state = models.CharField(db_column='State', max_length=7) # Field name made lowercase. privilege = models.CharField(db_column='Privilege', max_length=255) # Field name made lowercase. groupname = models.CharField(db_column='GroupName', max_length=255) # Field name made lowercase. firstname = models.CharField(db_column='FirstName', max_length=255) # Field name made lowercase. lastname = models.CharField(db_column='LastName', max_length=255) # Field name made lowercase. birthday = models.CharField(db_column='Birthday', max_length=32) # Field name made lowercase. gender = models.IntegerField(db_column='Gender') # Field name made lowercase. country = models.CharField(db_column='Country', max_length=2) # Field name made lowercase. email = models.CharField(db_column='Email', unique=True, max_length=255) # Field name made lowercase. address = models.CharField(db_column='Address', max_length=255) # Field name made lowercase. city = models.CharField(db_column='City', max_length=100) # Field name made lowercase. postalcode = models.CharField(db_column='PostalCode', max_length=10) # Field name made lowercase. usstate = models.CharField(db_column='USState', max_length=2) # Field name made lowercase. chat = models.CharField(db_column='Chat', max_length=2) # Field name made lowercase. betakeyid = models.IntegerField(db_column='BetaKeyId') # Field name made lowercase. cachedcoupons = models.CharField(db_column='CachedCoupons', max_length=255) # Field name made lowercase. profileaccess = models.CharField(db_column='ProfileAccess', max_length=45, blank=True, null=True) # Field name made lowercase. level = models.IntegerField(db_column='Level') # Field name made lowercase. currentfunds = models.IntegerField(db_column='CurrentFunds') # Field name made lowercase. idbilling = models.CharField(db_column='IdBilling', max_length=255) # Field name made lowercase. community = models.CharField(db_column='Community', max_length=2) # Field name made lowercase. newsletter = models.IntegerField(db_column='Newsletter') # Field name made lowercase. account = models.CharField(db_column='Account', max_length=64) # Field name made lowercase. choicesublength = models.IntegerField(db_column='ChoiceSubLength') # Field name made lowercase. currentsublength = models.CharField(db_column='CurrentSubLength', max_length=255) # Field name made lowercase. valididbilling = models.IntegerField(db_column='ValidIdBilling') # Field name made lowercase. gmid = models.IntegerField(db_column='GMId') # Field name made lowercase. extendedprivilege = models.CharField(db_column='ExtendedPrivilege', max_length=128) # Field name made lowercase. toolsgroup = models.CharField(db_column='ToolsGroup', max_length=20) # Field name made lowercase. unsubscribe = models.DateField(db_column='Unsubscribe') # Field name made lowercase. subdate = models.DateTimeField(db_column='SubDate') # Field name made lowercase. subip = models.CharField(db_column='SubIp', max_length=20) # Field name made lowercase. securepassword = models.CharField(db_column='SecurePassword', max_length=32) # Field name made lowercase. lastinvoiceemailcheck = models.DateField(db_column='LastInvoiceEmailCheck') # Field name made lowercase. fromsource = models.CharField(db_column='FromSource', max_length=8) # Field name made lowercase. validmerchantcode = models.CharField(db_column='ValidMerchantCode', max_length=13) # Field name made lowercase. pbc = models.IntegerField(db_column='PBC') # Field name made lowercase. apikeyseed = models.CharField(db_column='ApiKeySeed', max_length=8, blank=True, null=True) # Field name made lowercase. class Meta: db_table = 'user' ===== Base kring ===== from django.db import models class Characters(models.Model): char_id = models.IntegerField(primary_key=True) char_name = models.CharField(max_length=20) user_id = models.IntegerField() guild_id = models.IntegerField() best_combat_level = models.IntegerField() home_mainland_session_id = models.IntegerField() ring_access = models.CharField(max_length=63) race = models.CharField(max_length=8) civilisation = models.CharField(max_length=9) cult = models.CharField(max_length=9) current_session = models.IntegerField() rrp_am = models.IntegerField() rrp_masterless = models.IntegerField() rrp_author = models.IntegerField() newcomer = models.IntegerField() creation_date = models.DateTimeField() last_played_date = models.DateTimeField() class Meta: managed = False db_table = 'characters' unique_together = (('char_name', 'home_mainland_session_id'),) class Folder(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. owner = models.IntegerField() title = models.CharField(max_length=40) comments = models.TextField() class Meta: managed = False db_table = 'folder' class FolderAccess(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. folder_id = models.IntegerField() user_id = models.IntegerField() class Meta: managed = False db_table = 'folder_access' class GuildInvites(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. session_id = models.IntegerField() guild_id = models.IntegerField() class Meta: managed = False db_table = 'guild_invites' class Guilds(models.Model): guild_id = models.IntegerField(primary_key=True) guild_name = models.CharField(max_length=50) shard_id = models.IntegerField() class Meta: managed = False db_table = 'guilds' class JournalEntry(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. session_id = models.IntegerField() author = models.IntegerField() type = models.CharField(max_length=11) text = models.TextField() time_stamp = models.DateTimeField() class Meta: managed = False db_table = 'journal_entry' class KnownUsers(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. owner = models.IntegerField() targer_user = models.IntegerField() targer_character = models.IntegerField() relation_type = models.CharField(max_length=12) comments = models.CharField(max_length=255) class Meta: managed = False db_table = 'known_users' class MfsErasedMailSeries(models.Model): erased_char_id = models.IntegerField() erased_char_name = models.CharField(max_length=32) erased_series = models.AutoField(primary_key=True) erase_date = models.DateTimeField() class Meta: managed = False db_table = 'mfs_erased_mail_series' class MfsGuildThread(models.Model): thread_id = models.AutoField(primary_key=True) guild_id = models.IntegerField() topic = models.CharField(max_length=255) author_name = models.CharField(max_length=32) last_post_date = models.DateTimeField() post_count = models.IntegerField() class Meta: managed = False db_table = 'mfs_guild_thread' class MfsGuildThreadMessage(models.Model): thread_id = models.IntegerField() author_name = models.CharField(max_length=32) date = models.DateTimeField() content = models.TextField() class Meta: managed = False db_table = 'mfs_guild_thread_message' class MfsMail(models.Model): sender_name = models.CharField(max_length=32) subject = models.CharField(max_length=250) date = models.DateTimeField() status = models.CharField(max_length=9) dest_char_id = models.IntegerField() erase_series = models.IntegerField() content = models.TextField() class Meta: managed = False db_table = 'mfs_mail' class Outlands(models.Model): session_id = models.AutoField(primary_key=True) island_name = models.TextField() billing_instance_id = models.IntegerField() anim_session_id = models.IntegerField() class Meta: managed = False db_table = 'outlands' class PlayerRating(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. scenario_id = models.IntegerField() session_id = models.IntegerField() rate_fun = models.IntegerField() rate_difficulty = models.IntegerField() rate_accessibility = models.IntegerField() rate_originality = models.IntegerField() rate_direction = models.IntegerField() author = models.IntegerField() rating = models.IntegerField() comments = models.TextField() time_stamp = models.DateTimeField() class Meta: managed = False db_table = 'player_rating' class RingUsers(models.Model): user_id = models.IntegerField(primary_key=True) user_name = models.CharField(unique=True, max_length=20) user_type = models.CharField(max_length=12) current_session = models.IntegerField() current_activity = models.CharField(max_length=7) current_status = models.CharField(max_length=10) public_level = models.CharField(max_length=9) account_type = models.CharField(max_length=9) content_access_level = models.CharField(max_length=20) description = models.TextField() lang = models.CharField(max_length=7) cookie = models.CharField(max_length=30) current_domain_id = models.IntegerField() pioneer_char_id = models.IntegerField() current_char = models.IntegerField() add_privileges = models.CharField(max_length=64) class Meta: managed = False db_table = 'ring_users' class Scenario(models.Model): md5 = models.CharField(max_length=64) title = models.CharField(max_length=32) description = models.TextField() author = models.CharField(max_length=32) rrp_total = models.IntegerField() anim_mode = models.CharField(max_length=13) language = models.CharField(max_length=11) orientation = models.CharField(max_length=18) level = models.CharField(max_length=4) allow_free_trial = models.IntegerField() class Meta: managed = False db_table = 'scenario' class ScenarioDesc(models.Model): session_id = models.IntegerField(primary_key=True) parent_scenario = models.IntegerField() description = models.TextField() relation_to_parent = models.CharField(max_length=13) title = models.CharField(unique=True, max_length=40) num_player = models.IntegerField() content_access_level = models.CharField(max_length=20) class Meta: managed = False db_table = 'scenario_desc' class SessionLog(models.Model): id = models.IntegerField(primary_key=True) scenario_id = models.IntegerField() rrp_scored = models.IntegerField() scenario_point_scored = models.IntegerField() time_taken = models.IntegerField() participants = models.TextField() launch_date = models.DateTimeField() owner = models.CharField(max_length=32) guild_name = models.CharField(max_length=50, blank=True, null=True) class Meta: managed = False db_table = 'session_log' class SessionParticipant(models.Model): id = models.AutoField(db_column='Id', primary_key=True) # Field name made lowercase. session_id = models.IntegerField() char_id = models.IntegerField() status = models.CharField(max_length=19) kicked = models.IntegerField() session_rated = models.IntegerField() class Meta: managed = False db_table = 'session_participant' class Sessions(models.Model): session_id = models.AutoField(primary_key=True) session_type = models.CharField(max_length=11) title = models.CharField(max_length=40) owner = models.IntegerField() plan_date = models.DateTimeField() start_date = models.DateTimeField() description = models.TextField() orientation = models.CharField(max_length=18) level = models.CharField(max_length=4) rule_type = models.CharField(max_length=10) access_type = models.CharField(max_length=10) state = models.CharField(max_length=10) host_shard_id = models.IntegerField() subscription_slots = models.IntegerField() reserved_slots = models.IntegerField() free_slots = models.IntegerField() estimated_duration = models.CharField(max_length=9) final_duration = models.IntegerField() folder_id = models.IntegerField() lang = models.CharField(max_length=20) icone = models.CharField(max_length=70) anim_mode = models.CharField(max_length=13) race_filter = models.CharField(max_length=36) religion_filter = models.CharField(max_length=29) guild_filter = models.CharField(max_length=16, blank=True, null=True) shard_filter = models.CharField(max_length=351) level_filter = models.CharField(max_length=29) subscription_closed = models.IntegerField() newcomer = models.IntegerField() class Meta: managed = False db_table = 'sessions' class Shard(models.Model): shard_id = models.IntegerField(primary_key=True) wsonline = models.IntegerField(db_column='WSOnline') # Field name made lowercase. motd = models.TextField(db_column='MOTD') # Field name made lowercase. oldstate = models.CharField(db_column='OldState', max_length=13) # Field name made lowercase. requiredstate = models.CharField(db_column='RequiredState', max_length=13) # Field name made lowercase. class Meta: managed = False db_table = 'shard' {{tag>sysadmin developpement}}