0001_initial.py 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. # Generated by Django 3.1.1 on 2020-09-07 21:23
  2. import uuid
  3. import django.db.models.deletion
  4. from django.db import migrations, models
  5. class Migration(migrations.Migration):
  6. initial = True
  7. dependencies = []
  8. operations = [
  9. migrations.CreateModel(
  10. name="Album",
  11. fields=[
  12. (
  13. "id",
  14. models.AutoField(
  15. auto_created=True,
  16. primary_key=True,
  17. serialize=False,
  18. verbose_name="ID",
  19. ),
  20. ),
  21. (
  22. "uuid",
  23. models.UUIDField(
  24. default=uuid.uuid4, unique=True, verbose_name="UUID"
  25. ),
  26. ),
  27. ("name", models.CharField(help_text="The album name", max_length=100)),
  28. (
  29. "year",
  30. models.PositiveSmallIntegerField(
  31. help_text="The year the album was released"
  32. ),
  33. ),
  34. ],
  35. options={
  36. "ordering": ("artist", "year", "name"),
  37. },
  38. ),
  39. migrations.CreateModel(
  40. name="Artist",
  41. fields=[
  42. (
  43. "id",
  44. models.AutoField(
  45. auto_created=True,
  46. primary_key=True,
  47. serialize=False,
  48. verbose_name="ID",
  49. ),
  50. ),
  51. (
  52. "uuid",
  53. models.UUIDField(
  54. default=uuid.uuid4, unique=True, verbose_name="UUID"
  55. ),
  56. ),
  57. ("name", models.CharField(help_text="The artist name", max_length=100)),
  58. ],
  59. options={
  60. "ordering": ("name",),
  61. },
  62. ),
  63. migrations.CreateModel(
  64. name="Playlist",
  65. fields=[
  66. (
  67. "id",
  68. models.AutoField(
  69. auto_created=True,
  70. primary_key=True,
  71. serialize=False,
  72. verbose_name="ID",
  73. ),
  74. ),
  75. (
  76. "uuid",
  77. models.UUIDField(
  78. default=uuid.uuid4, unique=True, verbose_name="UUID"
  79. ),
  80. ),
  81. (
  82. "name",
  83. models.CharField(help_text="The playlist name", max_length=100),
  84. ),
  85. ],
  86. options={
  87. "abstract": False,
  88. },
  89. ),
  90. migrations.CreateModel(
  91. name="Track",
  92. fields=[
  93. (
  94. "id",
  95. models.AutoField(
  96. auto_created=True,
  97. primary_key=True,
  98. serialize=False,
  99. verbose_name="ID",
  100. ),
  101. ),
  102. (
  103. "uuid",
  104. models.UUIDField(
  105. default=uuid.uuid4, unique=True, verbose_name="UUID"
  106. ),
  107. ),
  108. (
  109. "name",
  110. models.CharField(help_text="The track name", max_length=100),
  111. ),
  112. (
  113. "number",
  114. models.PositiveSmallIntegerField(
  115. help_text="The track number on the album"
  116. ),
  117. ),
  118. (
  119. "album",
  120. models.ForeignKey(
  121. help_text="The album this track appears on",
  122. on_delete=django.db.models.deletion.CASCADE,
  123. related_name="tracks",
  124. to="grunge.album",
  125. ),
  126. ),
  127. ],
  128. options={
  129. "ordering": ("number", "name"),
  130. },
  131. ),
  132. migrations.CreateModel(
  133. name="PlaylistTrack",
  134. fields=[
  135. (
  136. "id",
  137. models.AutoField(
  138. auto_created=True,
  139. primary_key=True,
  140. serialize=False,
  141. verbose_name="ID",
  142. ),
  143. ),
  144. (
  145. "uuid",
  146. models.UUIDField(
  147. default=uuid.uuid4, unique=True, verbose_name="UUID"
  148. ),
  149. ),
  150. (
  151. "number",
  152. models.PositiveSmallIntegerField(
  153. help_text="The track number on the playlist"
  154. ),
  155. ),
  156. (
  157. "playlist",
  158. models.ForeignKey(
  159. help_text="The playlist this track appears on",
  160. on_delete=django.db.models.deletion.CASCADE,
  161. to="grunge.playlist",
  162. ),
  163. ),
  164. (
  165. "track",
  166. models.ForeignKey(
  167. help_text="The track on this playlist",
  168. on_delete=django.db.models.deletion.CASCADE,
  169. to="grunge.track",
  170. ),
  171. ),
  172. ],
  173. options={
  174. "ordering": ("number",),
  175. },
  176. ),
  177. migrations.AddField(
  178. model_name="playlist",
  179. name="tracks",
  180. field=models.ManyToManyField(
  181. help_text="The tracks on the playlist",
  182. related_name="playlists",
  183. through="grunge.PlaylistTrack",
  184. to="grunge.Track",
  185. ),
  186. ),
  187. migrations.AddIndex(
  188. model_name="artist",
  189. index=models.Index(fields=["name"], name="grunge_arti_name_b98e4f_idx"),
  190. ),
  191. migrations.AddField(
  192. model_name="album",
  193. name="artist",
  194. field=models.ForeignKey(
  195. help_text="The artist that produced the album",
  196. on_delete=django.db.models.deletion.CASCADE,
  197. related_name="albums",
  198. to="grunge.artist",
  199. ),
  200. ),
  201. migrations.AddIndex(
  202. model_name="track",
  203. index=models.Index(
  204. fields=["number", "name"], name="grunge_trac_number_40d766_idx"
  205. ),
  206. ),
  207. migrations.AddConstraint(
  208. model_name="track",
  209. constraint=models.UniqueConstraint(
  210. fields=("album", "number"), name="unique_album_number"
  211. ),
  212. ),
  213. migrations.AddConstraint(
  214. model_name="playlisttrack",
  215. constraint=models.UniqueConstraint(
  216. fields=("playlist", "track", "number"),
  217. name="unique_playlist_track_number",
  218. ),
  219. ),
  220. migrations.AddIndex(
  221. model_name="album",
  222. index=models.Index(
  223. fields=["artist", "year", "name"], name="grunge_albu_artist__78041d_idx"
  224. ),
  225. ),
  226. ]