for _, m := range initialMigrations {
				m.SetRawSQLDB(rawSQLDB)
				m.SetDBFlavor(flavor)
				m.SetClock(fakeClock)
				err := m.Up(logger)
				Expect(err).NotTo(HaveOccurred())
			}

			// Can't do this in the Describe BeforeEach
			// as the test on line 37 will cause ginkgo to panic
			mig.SetRawSQLDB(rawSQLDB)
			mig.SetDBFlavor(flavor)
		})

		JustBeforeEach(func() {
			migErr = mig.Up(logger)
		})

		It("does not error out", func() {
			Expect(migErr).NotTo(HaveOccurred())
		})

		It("should add a placement_tags column to desired lrps", func() {
			placementTags := []string{"tag-1"}

			jsonData, err := json.Marshal(placementTags)
			Expect(err).NotTo(HaveOccurred())

			_, err = rawSQLDB.Exec(
				sqldb.RebindForFlavor(
					`INSERT INTO desired_lrps
				0,
			)
			Expect(err).NotTo(HaveOccurred())

			// Tasks
			expectedTask = model_helpers.NewValidTask("task-guid")
			jsonValue, err = json.Marshal(expectedTask)
			Expect(err).NotTo(HaveOccurred())
			_, err = storeClient.Set(etcd.TaskSchemaPath(expectedTask), jsonValue, 0)
			Expect(err).NotTo(HaveOccurred())
		})

		JustBeforeEach(func() {
			migration.SetStoreClient(storeClient)
			migration.SetCryptor(cryptor)
			migrationErr = migration.Up(logger)
		})

		var validateConversionToProto = func(node *goetcd.Node, actual, expected format.Versioner) {
			value := node.Value

			Expect(value[:2]).To(BeEquivalentTo(format.BASE64[:]))
			payload, err := base64.StdEncoding.DecodeString(string(value[2:]))
			Expect(err).NotTo(HaveOccurred())
			Expect(payload[0]).To(BeEquivalentTo(format.PROTO))
			serializer.Unmarshal(logger, []byte(value), actual)
			Expect(actual).To(Equal(expected))
		}

		It("converts all data stored in the etcd store to base 64 protobuf", func() {
			Expect(migrationErr).NotTo(HaveOccurred())